diff options
author | Christopher Faylor <me@cgf.cx> | 2013-01-21 17:17:44 +0000 |
---|---|---|
committer | Christopher Faylor <me@cgf.cx> | 2013-01-21 17:17:44 +0000 |
commit | 93ff4bbee0f74342000a6c90ae175170a640a0b8 (patch) | |
tree | b0315a5cf35a4b841afd9a943fe612171ed23368 /winsup/cygwin/exceptions.cc | |
parent | 3b1a8c572f8cea988ac1ede84000401f6d8c402e (diff) | |
download | cygnal-93ff4bbee0f74342000a6c90ae175170a640a0b8.tar.gz cygnal-93ff4bbee0f74342000a6c90ae175170a640a0b8.tar.bz2 cygnal-93ff4bbee0f74342000a6c90ae175170a640a0b8.zip |
* dcrt0.cc (dll_crt0_1): Comment assumption.
* exceptions.cc (sigpacket::setup_handler): Avoid sending signals during fork
processing.
Diffstat (limited to 'winsup/cygwin/exceptions.cc')
-rw-r--r-- | winsup/cygwin/exceptions.cc | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/winsup/cygwin/exceptions.cc b/winsup/cygwin/exceptions.cc index 0a02f0d28..5a8474b6b 100644 --- a/winsup/cygwin/exceptions.cc +++ b/winsup/cygwin/exceptions.cc @@ -789,6 +789,10 @@ sigpacket::setup_handler (void *handler, struct sigaction& siga, _cygtls *tls) goto out; } + while (in_forkee) + yield (); /* Won't be able to send signals until we're finished + processing fork(). */ + for (int n = 0; n < CALL_HANDLER_RETRY_OUTER; n++) { for (int i = 0; i < CALL_HANDLER_RETRY_INNER; i++) |