* cygheap.cc (init_cygheap::find_tls): Add a comment.
* dcrt0.cc (parent_sigmask): Delete. (dll_crt0_1): Use spawn_info->moreinfo->sigmask rather than saved parent signal mask. * thread.cc (pthread::thread_init_wrapper): Add comment stressing the importance of maintaining ordering of statements.
This commit is contained in:
parent
4537e80a3a
commit
f653639a22
|
@ -1,3 +1,12 @@
|
|||
2013-04-07 Christopher Faylor <me.cygwin2013@cgf.cx>
|
||||
|
||||
* cygheap.cc (init_cygheap::find_tls): Add a comment.
|
||||
* dcrt0.cc (parent_sigmask): Delete.
|
||||
(dll_crt0_1): Use spawn_info->moreinfo->sigmask rather than saved
|
||||
parent signal mask.
|
||||
* thread.cc (pthread::thread_init_wrapper): Add comment stressing the
|
||||
importance of maintaining ordering of statements.
|
||||
|
||||
2013-04-05 Corinna Vinschen <corinna@vinschen.de>
|
||||
|
||||
* mmap.cc (is_mmapped_region): Call LIST_UNLOCK on premature return.
|
||||
|
|
|
@ -628,6 +628,7 @@ init_cygheap::find_tls (int sig, bool& issig_wait)
|
|||
else
|
||||
{
|
||||
ix = -1;
|
||||
/* Scan thread list looking for valid signal-delivery candidates */
|
||||
while (++ix < (int) nthreads)
|
||||
if (!threadlist[ix]->tid)
|
||||
continue;
|
||||
|
|
|
@ -398,7 +398,6 @@ check_sanity_and_sync (per_process *p)
|
|||
}
|
||||
|
||||
child_info NO_COPY *child_proc_info;
|
||||
static NO_COPY sigset_t parent_sigmask;
|
||||
|
||||
#define CYGWIN_GUARD (PAGE_READWRITE | PAGE_GUARD)
|
||||
|
||||
|
@ -655,8 +654,6 @@ child_info_spawn::handle_spawn ()
|
|||
FALSE, DUPLICATE_SAME_ACCESS | DUPLICATE_CLOSE_SOURCE))
|
||||
h = NULL;
|
||||
|
||||
parent_sigmask = moreinfo->sigmask;
|
||||
|
||||
/* Setup our write end of the process pipe. Clear the one in the structure.
|
||||
The destructor should never be called for this but, it can't hurt to be
|
||||
safe. */
|
||||
|
@ -824,9 +821,9 @@ dll_crt0_1 (void *)
|
|||
extern void initial_setlocale ();
|
||||
|
||||
_my_tls.incyg++;
|
||||
if (!in_forkee)
|
||||
_my_tls.sigmask = parent_sigmask; /* always zero if started by non-cygwin
|
||||
process */
|
||||
/* Inherit "parent" exec'ed process sigmask */
|
||||
if (spawn_info && !in_forkee)
|
||||
_my_tls.sigmask = spawn_info->moreinfo->sigmask;
|
||||
|
||||
if (dynamically_loaded)
|
||||
sigproc_init ();
|
||||
|
|
|
@ -1912,6 +1912,9 @@ DWORD WINAPI
|
|||
pthread::thread_init_wrapper (void *arg)
|
||||
{
|
||||
pthread *thread = (pthread *) arg;
|
||||
/* This *must* be set prior to calling set_tls_self_pointer or there is
|
||||
a race with the signal processing code which may miss the signal mask
|
||||
settings. */
|
||||
_my_tls.sigmask = thread->parent_sigmask;
|
||||
thread->set_tls_self_pointer ();
|
||||
|
||||
|
|
Loading…
Reference in New Issue