* assert.cc (__assert): Call debugger on assertion failure if debugging.
* dcrt0.cc (dll_crt0_1): Just wait for signal thread to go live rather than going through the overhead of invoking it. * fork.cc (fork_child): Ditto. * exceptions.cc (signal_fixup_after_fork): Call sigproc_init here. * sigproc.cc (proc_can_be_signalled): Assume that the signal thread is live. (sig_dispatch): Ditto. (sig_send): Ditto. (wait_for_sigthread): Renamed from "wait_for_me". Assume that wait_sig_inited has been set and that this function is only called from the main thread. * winsup.h (wait_for_sigthread): Declare new function.
This commit is contained in:
@@ -715,15 +715,16 @@ interrupt_now (CONTEXT *ctx, int sig, void *handler, struct sigaction& siga)
|
||||
void __stdcall
|
||||
signal_fixup_after_fork ()
|
||||
{
|
||||
if (!sigsave.sig)
|
||||
return;
|
||||
|
||||
sigsave.sig = 0;
|
||||
if (sigsave.retaddr_on_stack)
|
||||
if (sigsave.sig)
|
||||
{
|
||||
*sigsave.retaddr_on_stack = sigsave.retaddr;
|
||||
set_process_mask (sigsave.oldmask);
|
||||
sigsave.sig = 0;
|
||||
if (sigsave.retaddr_on_stack)
|
||||
{
|
||||
*sigsave.retaddr_on_stack = sigsave.retaddr;
|
||||
set_process_mask (sigsave.oldmask);
|
||||
}
|
||||
}
|
||||
sigproc_init ();
|
||||
}
|
||||
|
||||
void __stdcall
|
||||
|
Reference in New Issue
Block a user