From ff7b364c121175ad1b5b88ec4010ee81dab1e5c4 Mon Sep 17 00:00:00 2001 From: Christopher Faylor Date: Sun, 2 Aug 2009 21:38:40 +0000 Subject: * sigproc.cc (stopped_or_terminated): Don't return a match when stopsig == SIGCONT and not WCONTINUED. * termios.cc (tcsetpgrp): Improve debugging output. --- winsup/cygwin/sigproc.cc | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'winsup/cygwin/sigproc.cc') 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 -- cgit v1.2.3