From 7edb836a68620f50399b6d086ecba7c19d08b10f Mon Sep 17 00:00:00 2001 From: Christopher Faylor Date: Sun, 5 Nov 2000 03:08:39 +0000 Subject: * exceptions.cc (handle_sigsuspend): Record frame here for signalling. (set_process_mask): Ditto. --- winsup/cygwin/ChangeLog | 5 +++++ winsup/cygwin/exceptions.cc | 2 ++ winsup/cygwin/sigproc.cc | 11 +++++------ 3 files changed, 12 insertions(+), 6 deletions(-) (limited to 'winsup') diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog index e27ad37..f841d45 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 88b1957..5fa5889 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 27a07d5..e4bd915 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) { -- cgit v1.1