From acced2cea2e52c17dbf57efd9b7d1b53e73aedcf Mon Sep 17 00:00:00 2001 From: Christopher Faylor Date: Sat, 18 Jul 2009 20:25:07 +0000 Subject: * exceptions.cc (sig_handle_tty_stop): Set stopsig to SIGCONT when continuing. (stopped_or_terminated): Honor WCONTINUED. * wait.cc (wait4): Ditto. * include/cygwin/wait.h (WCONTINUED): Define. (__W_CONTINUED): Ditto. (WIFCONTINUED): Ditto. --- winsup/cygwin/sigproc.cc | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'winsup/cygwin/sigproc.cc') diff --git a/winsup/cygwin/sigproc.cc b/winsup/cygwin/sigproc.cc index 91109977b..29bb00101 100644 --- a/winsup/cygwin/sigproc.cc +++ b/winsup/cygwin/sigproc.cc @@ -1050,7 +1050,7 @@ stopped_or_terminated (waitq *parent_w, _pinfo *child) int terminated; if (!((terminated = (child->process_state == PID_EXITED)) || - ((w->options & WUNTRACED) && child->stopsig))) + ((w->options & (WUNTRACED | WCONTINUED)) && child->stopsig))) return false; parent_w->next = w->next; /* successful wait. remove from wait queue */ @@ -1059,7 +1059,10 @@ stopped_or_terminated (waitq *parent_w, _pinfo *child) if (!terminated) { sigproc_printf ("stopped child"); - w->status = (child->stopsig << 8) | 0x7f; + if (child->stopsig == SIGCONT) + w->status = __W_CONTINUED; + else + w->status = (child->stopsig << 8) | 0x7f; child->stopsig = 0; } else -- cgit v1.2.3