* exceptions.cc (handle_sigsuspend): Record frame here for signalling.

(set_process_mask): Ditto.
This commit is contained in:
Christopher Faylor 2000-11-05 03:08:39 +00:00
parent 1ae469adf4
commit 7edb836a68
3 changed files with 12 additions and 6 deletions

View File

@ -1,3 +1,8 @@
Sat Nov 4 22:07:03 2000 Christopher Faylor <cgf@cygnus.com>
* exceptions.cc (handle_sigsuspend): Record frame here for signalling.
(set_process_mask): Ditto.
Sat Nov 4 14:24:10 2000 Christopher Faylor <cgf@cygnus.com>
* sigproc.cc (wait_subproc): Still more debugging cleanup.

View File

@ -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;

View File

@ -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)
{