]> sourceware.org Git - newlib-cygwin.git/commitdiff
* exceptions.cc (sig_handle_tty_stop): Set flag that we are in a cygwin
authorChristopher Faylor <me@cgf.cx>
Mon, 20 Sep 2004 04:58:36 +0000 (04:58 +0000)
committerChristopher Faylor <me@cgf.cx>
Mon, 20 Sep 2004 04:58:36 +0000 (04:58 +0000)
function to avoid a probably erroneous stack walk.

winsup/cygwin/ChangeLog
winsup/cygwin/exceptions.cc
winsup/cygwin/sigproc.cc

index b567cfae532af847004d5962f1914f0135fcbac8..713972952ed5cb82b095d55c6851f8615580e31b 100644 (file)
@@ -1,3 +1,8 @@
+2004-09-20  Christopher Faylor  <cgf@timesys.com>
+
+       * exceptions.cc (sig_handle_tty_stop): Set flag that we are in a cygwin
+       function to avoid a probably erroneous stack walk.
+
 2004-09-17  Corinna Vinschen  <corinna@vinschen.de>
 
        * syscalls.cc (unlink): Don't use "delete on close" on remote shares.
index 1a065f7208ad6784a04b05c800722a189e847eba..7f76ad5bc54e87929b2260f41b16d609df244e32 100644 (file)
@@ -593,7 +593,7 @@ extern "C" {
 static void
 sig_handle_tty_stop (int sig)
 {
-  /* Silently ignore attempts to suspend if there is no accomodating
+  /* Silently ignore attempts to suspend if there is no accommodating
      cygwin parent to deal with this behavior. */
   if (!myself->ppid_handle)
     {
@@ -623,6 +623,7 @@ sig_handle_tty_stop (int sig)
   HANDLE w4[2];
   w4[0] = sigCONT;
   w4[1] = signal_arrived;
+  _my_tls.incyg = 1;
   switch (WaitForMultipleObjects (2, w4, TRUE, INFINITE))
     {
     case WAIT_OBJECT_0:
@@ -633,6 +634,7 @@ sig_handle_tty_stop (int sig)
       api_fatal ("WaitSingleObject failed, %E");
       break;
     }
+  _my_tls.incyg = 0;
   return;
 }
 }
index 2ab97698f750c792e3e62c93972fa107c8202477..416761ee6e0604fcd0286c3a7df2973952513324 100644 (file)
@@ -1182,6 +1182,8 @@ wait_sig (VOID *self)
          else
            {
              int sig = pack.si.si_signo;
+             // FIXME: Not quite right when taking threads into consideration.
+             // Do we need a per-thread queue?
              if (sigq.sigs[sig].si.si_signo)
                sigproc_printf ("sig %d already queued", pack.si.si_signo);
              else
This page took 0.040482 seconds and 5 git commands to generate.