OSDN Git Service

* exceptions.cc (sig_handle_tty_stop): Don't send SIGCHLD if parent doesn't
authorcgf <cgf>
Sat, 19 Jan 2002 23:57:45 +0000 (23:57 +0000)
committercgf <cgf>
Sat, 19 Jan 2002 23:57:45 +0000 (23:57 +0000)
want it.
(sig_handle): Don't check for SA_NOCLDSTOP here.  We don't have enough
information.

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

index e71aa40..d7fe3b1 100644 (file)
@@ -1,5 +1,12 @@
 2002-01-19  Christopher Faylor  <cgf@redhat.com>
 
+       * exceptions.cc (sig_handle_tty_stop): Don't send SIGCHLD if parent
+       doesn't want it.
+       (sig_handle): Don't check for SA_NOCLDSTOP here.  We don't have enough
+       information.
+
+2002-01-19  Christopher Faylor  <cgf@redhat.com>
+
        * include/cygwin/version.h: Bump DLL minor number.
 
 2002-01-19  Christopher Faylor  <cgf@redhat.com>
index cb4de7a..b608e13 100644 (file)
@@ -600,6 +600,7 @@ sig_handle_tty_stop (int sig)
       myself->process_state &= ~PID_STOPPED;
       return;
     }
+
   myself->stopsig = sig;
   /* See if we have a living parent.  If so, send it a special signal.
    * It will figure out exactly which pid has stopped by scanning
@@ -608,7 +609,8 @@ sig_handle_tty_stop (int sig)
   if (my_parent_is_alive ())
     {
       pinfo parent (myself->ppid);
-      sig_send (parent, SIGCHLD);
+      if (!(parent->getsig (SIGCHLD).sa_flags & SA_NOCLDSTOP))
+       sig_send (parent, SIGCHLD);
     }
   sigproc_printf ("process %d stopped by signal %d, myself->ppid_handle %p",
                  myself->pid, sig, myself->ppid_handle);
@@ -1032,7 +1034,7 @@ sig_handle (int sig, bool thisproc)
   if (handler == (void *) SIG_ERR)
     goto exit_sig;
 
-  if ((sig == SIGCHLD) && (thissig.sa_flags & SA_NOCLDSTOP))
+  if (sig == SIGCHLD)
     goto done;
 
   goto dosig;