diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog index e27ad371a..f841d4504 100644 --- a/winsup/cygwin/ChangeLog +++ b/winsup/cygwin/ChangeLog @@ -1,3 +1,8 @@ +Sat Nov 4 22:07:03 2000 Christopher Faylor + + * exceptions.cc (handle_sigsuspend): Record frame here for signalling. + (set_process_mask): Ditto. + Sat Nov 4 14:24:10 2000 Christopher Faylor * sigproc.cc (wait_subproc): Still more debugging cleanup. diff --git a/winsup/cygwin/exceptions.cc b/winsup/cygwin/exceptions.cc index 88b195724..5fa58890b 100644 --- a/winsup/cygwin/exceptions.cc +++ b/winsup/cygwin/exceptions.cc @@ -554,6 +554,7 @@ stack (void) int __stdcall handle_sigsuspend (sigset_t tempmask) { + sigframe thisframe (mainthread); sigset_t oldmask = myself->getsigmask (); // Remember for restoration set_process_mask (tempmask & ~SIG_NONMASKABLE);// Let signals we're @@ -872,6 +873,7 @@ ctrl_c_handler (DWORD type) extern "C" void __stdcall set_process_mask (sigset_t newmask) { + sigframe thisframe (mainthread); mask_sync->acquire (INFINITE); sigset_t oldmask = myself->getsigmask (); newmask &= ~SIG_NONMASKABLE; diff --git a/winsup/cygwin/sigproc.cc b/winsup/cygwin/sigproc.cc index 27a07d580..e4bd91527 100644 --- a/winsup/cygwin/sigproc.cc +++ b/winsup/cygwin/sigproc.cc @@ -262,12 +262,11 @@ proc_subproc (DWORD what, DWORD val) break; /* A child process had terminated. - * Possibly this is just due to an exec(). Cygwin implements an exec() - * as a "handoff" from one windows process to another. If child->hProcess - * is different from what is recorded in hchildren, then this is an exec(). - * Otherwise this is a normal child termination event. - * (called from wait_subproc thread) - */ + Possibly this is just due to an exec(). Cygwin implements an exec() + as a "handoff" from one windows process to another. If child->hProcess + is different from what is recorded in hchildren, then this is an exec(). + Otherwise this is a normal child termination event. + (called from wait_subproc thread) */ case PROC_CHILDTERMINATED: if (hchildren[val] != pchildren[val]->hProcess) {