* 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