* exceptions.cc (sigdelayed): Simplify declaration.
(_cygtls::call_signal_handler): Fix test for when to pop signal stack. Only do it exactly when what is on the stack is a no-op.
This commit is contained in:
parent
4485a26eff
commit
45cb627406
|
@ -1,3 +1,9 @@
|
||||||
|
2012-08-03 Christopher Faylor <me.cygwin2012@cgf.cx>
|
||||||
|
|
||||||
|
* exceptions.cc (sigdelayed): Simplify declaration.
|
||||||
|
(_cygtls::call_signal_handler): Fix test for when to pop signal stack.
|
||||||
|
Only do it exactly when what is on the stack is a no-op.
|
||||||
|
|
||||||
2012-08-03 Christopher Faylor <me.cygwin2012@cgf.cx>
|
2012-08-03 Christopher Faylor <me.cygwin2012@cgf.cx>
|
||||||
|
|
||||||
* spawn.cc (child_info_spawn::worker): Put back a minor variation of
|
* spawn.cc (child_info_spawn::worker): Put back a minor variation of
|
||||||
|
|
|
@ -37,9 +37,7 @@ details. */
|
||||||
|
|
||||||
char debugger_command[2 * NT_MAX_PATH + 20];
|
char debugger_command[2 * NT_MAX_PATH + 20];
|
||||||
|
|
||||||
extern "C" {
|
extern "C" void sigdelayed ();
|
||||||
extern void sigdelayed ();
|
|
||||||
};
|
|
||||||
|
|
||||||
static BOOL WINAPI ctrl_c_handler (DWORD);
|
static BOOL WINAPI ctrl_c_handler (DWORD);
|
||||||
|
|
||||||
|
@ -1086,7 +1084,7 @@ sigignore (int sig)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Update the signal mask for this process and return the old mask.
|
/* Update the signal mask for this process and return the old mask.
|
||||||
Called from sigdelayed */
|
Called from call_signal_handler */
|
||||||
extern "C" sigset_t
|
extern "C" sigset_t
|
||||||
set_process_mask_delta ()
|
set_process_mask_delta ()
|
||||||
{
|
{
|
||||||
|
@ -1265,7 +1263,9 @@ _cygtls::call_signal_handler ()
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (incyg)
|
/* Pop the stack if the next "return address" is sigdelayed, since
|
||||||
|
this function is doing what sigdelayed would have done anyway. */
|
||||||
|
if (retaddr () == (__stack_t) sigdelayed)
|
||||||
pop ();
|
pop ();
|
||||||
|
|
||||||
debug_only_printf ("dealing with signal %d", sig);
|
debug_only_printf ("dealing with signal %d", sig);
|
||||||
|
|
Loading…
Reference in New Issue