have been terminated prior to setting flag.
* signal.cc (sigwaitinfo): Zero event before closing to signal other threads
that it is no longer available.
+2011-11-21 Christopher Faylor <me.cygwin2011@cgf.cx>
+
+ * sigproc.cc (remove_proc): Don't do busy loop when execing since
+ thread could have been terminated prior to setting flag.
+
+ * signal.cc (sigwaitinfo): Zero event before closing to signal other
+ threads that it is no longer available.
+
2011-11-18 Corinna Vinschen <corinna@vinschen.de>
* shared.cc (get_shared_parent_dir): Use global shared_parent_dir
__seterrno ();
res = -1;
}
+
+ _my_tls.event = NULL;
CloseHandle (h);
sigproc_printf ("returning signal %d", res);
return res;
moving it or it may become confused. The chances are very high that
the proc_waiter thread has already done this by the time we
get here. */
- while (!procs[nprocs].waiter_ready)
- yield ();
+ if (!have_execed)
+ while (!procs[nprocs].waiter_ready)
+ yield ();
procs[ci] = procs[nprocs];
}
return 0;