diff options
Diffstat (limited to 'winsup/cygwin/sigproc.cc')
-rw-r--r-- | winsup/cygwin/sigproc.cc | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/winsup/cygwin/sigproc.cc b/winsup/cygwin/sigproc.cc index 9c11ea022..bbbe9831e 100644 --- a/winsup/cygwin/sigproc.cc +++ b/winsup/cygwin/sigproc.cc @@ -1041,8 +1041,9 @@ stopped_or_terminated (waitq *parent_w, _pinfo *child) int terminated; - if (!((terminated = (child->process_state == PID_EXITED)) || - ((w->options & (WUNTRACED | WCONTINUED)) && child->stopsig))) + if (!((terminated = (child->process_state == PID_EXITED)) + || ((w->options & WCONTINUED) && child->stopsig == SIGCONT) + || ((w->options & WUNTRACED) && child->stopsig && child->stopsig != SIGCONT))) return false; parent_w->next = w->next; /* successful wait. remove from wait queue */ @@ -1050,7 +1051,7 @@ stopped_or_terminated (waitq *parent_w, _pinfo *child) if (!terminated) { - sigproc_printf ("stopped child"); + sigproc_printf ("stopped child, stopsig %d", child->stopsig); if (child->stopsig == SIGCONT) w->status = __W_CONTINUED; else |