diff options
Diffstat (limited to 'winsup/cygwin/sigproc.cc')
-rw-r--r-- | winsup/cygwin/sigproc.cc | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/winsup/cygwin/sigproc.cc b/winsup/cygwin/sigproc.cc index a213a5607..a82e90002 100644 --- a/winsup/cygwin/sigproc.cc +++ b/winsup/cygwin/sigproc.cc @@ -520,7 +520,7 @@ sig_send (_pinfo *p, int sig) SetEvent (sigCONT); sigheld = false; } - else + else if (&_my_tls == _main_tls) { #ifdef DEBUGGING system_printf ("signal %d sent to %p while signals are on hold", sig, p); @@ -886,6 +886,8 @@ child_info::sync (pid_t pid, HANDLE& hProcess, DWORD howlong) DWORD child_info::proc_retry (HANDLE h) { + if (!exit_code) + return EXITCODE_OK; switch (exit_code) { case STILL_ACTIVE: /* shouldn't happen */ |