* exceptions.cc (set_process_mask): Set pending signals only when signals
become unmasked. * sigproc.cc (pending_signals): Flip back to a global. (wait_sig): Don't set pending signals when there is an armed semaphore or signal is blocked. * shared.cc (shared_info::initialize): Add a username parameter for user-mode mounts. Reorganize to try to avoid startup race. (memory_init): Move some stuff into shared_info::initialize. * shared_info.h (shared_info::initialize): Change declaration. (CURR_SHARED_MAGIC): Update.
This commit is contained in:
@ -963,11 +963,15 @@ set_process_mask (sigset_t newmask)
|
||||
sigproc_printf ("old mask = %x, new mask = %x", myself->getsigmask (), newmask);
|
||||
myself->setsigmask (newmask); // Set a new mask
|
||||
mask_sync->release ();
|
||||
if (oldmask != newmask)
|
||||
sig_dispatch_pending ();
|
||||
else
|
||||
if (!(oldmask & ~newmask))
|
||||
sigproc_printf ("not calling sig_dispatch_pending. sigtid %p current %p",
|
||||
sigtid, GetCurrentThreadId ());
|
||||
else
|
||||
{
|
||||
extern bool pending_signals;
|
||||
pending_signals = true;
|
||||
sig_dispatch_pending ();
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user