Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristopher Faylor <me@cgf.cx>2002-01-20 02:57:45 +0300
committerChristopher Faylor <me@cgf.cx>2002-01-20 02:57:45 +0300
commit9e73b3397b6f566ccfde90593dc779026b022e70 (patch)
tree48aaed9fbf2bc43c430258080d44c84c278a8bc4 /winsup/cygwin
parent5946622e722a2b6b1eaed9920a1b8cdd7aab2983 (diff)
* 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.
Diffstat (limited to 'winsup/cygwin')
-rw-r--r--winsup/cygwin/ChangeLog7
-rw-r--r--winsup/cygwin/exceptions.cc6
2 files changed, 11 insertions, 2 deletions
diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog
index e71aa4002..d7fe3b153 100644
--- a/winsup/cygwin/ChangeLog
+++ b/winsup/cygwin/ChangeLog
@@ -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>
diff --git a/winsup/cygwin/exceptions.cc b/winsup/cygwin/exceptions.cc
index cb4de7a37..b608e1339 100644
--- a/winsup/cygwin/exceptions.cc
+++ b/winsup/cygwin/exceptions.cc
@@ -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;