diff options
author | Christopher Faylor <me@cgf.cx> | 2005-08-28 23:26:23 +0000 |
---|---|---|
committer | Christopher Faylor <me@cgf.cx> | 2005-08-28 23:26:23 +0000 |
commit | c461fbf160b97eeb0903c16c5212ac80e4bbeabe (patch) | |
tree | 981d61d6a3342f32887c5960051ed28df492e3ba /winsup/cygwin/exceptions.cc | |
parent | 2241d3fb53d05760d50bd195b07681756cfbdb25 (diff) | |
download | cygnal-c461fbf160b97eeb0903c16c5212ac80e4bbeabe.tar.gz cygnal-c461fbf160b97eeb0903c16c5212ac80e4bbeabe.tar.bz2 cygnal-c461fbf160b97eeb0903c16c5212ac80e4bbeabe.zip |
* cygtls.h (__ljfault): Declare.
(_cygtls::return_from_fault): Use __ljfault.
* exceptions.cc (set_signal_mask): Revert previous checkin.
* gendef (__sjfault): Split out into a separate function which doesn't bother
with any special signal locking. routines.
(_ljfault): Return from a __sjfault without bothering with signals.
Diffstat (limited to 'winsup/cygwin/exceptions.cc')
-rw-r--r-- | winsup/cygwin/exceptions.cc | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/winsup/cygwin/exceptions.cc b/winsup/cygwin/exceptions.cc index 98539d41d..eaad588bd 100644 --- a/winsup/cygwin/exceptions.cc +++ b/winsup/cygwin/exceptions.cc @@ -978,17 +978,19 @@ set_process_mask_delta () extern "C" void __stdcall set_signal_mask (sigset_t newmask, sigset_t& oldmask) { + if (GetCurrentThreadId () == sigtid) + small_printf ("********* waiting in signal thread\n"); mask_sync.acquire (INFINITE); newmask &= ~SIG_NONMASKABLE; sigset_t mask_bits = oldmask & ~newmask; sigproc_printf ("oldmask %p, newmask %p, mask_bits %p", oldmask, newmask, mask_bits); oldmask = newmask; - mask_sync.release (); if (mask_bits) sig_dispatch_pending (true); else sigproc_printf ("not calling sig_dispatch_pending"); + mask_sync.release (); return; } |