diff options
author | Christopher Faylor <me@cgf.cx> | 2002-08-11 19:19:29 +0000 |
---|---|---|
committer | Christopher Faylor <me@cgf.cx> | 2002-08-11 19:19:29 +0000 |
commit | 3cb62bd614c2960567f8b6ea643427daa39e8650 (patch) | |
tree | cad4777be13b616c13d5e4b9c7321d73339fdb61 /winsup/cygwin/exceptions.cc | |
parent | 2324fd5b91a7e9a50b3e2f494f02a7204720df9f (diff) | |
download | cygnal-3cb62bd614c2960567f8b6ea643427daa39e8650.tar.gz cygnal-3cb62bd614c2960567f8b6ea643427daa39e8650.tar.bz2 cygnal-3cb62bd614c2960567f8b6ea643427daa39e8650.zip |
* 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.
Diffstat (limited to 'winsup/cygwin/exceptions.cc')
-rw-r--r-- | winsup/cygwin/exceptions.cc | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/winsup/cygwin/exceptions.cc b/winsup/cygwin/exceptions.cc index f907b21a4..9e2e631ec 100644 --- a/winsup/cygwin/exceptions.cc +++ b/winsup/cygwin/exceptions.cc @@ -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 |