* 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.
This commit is contained in:
@ -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;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user