Clear pending signals targeting exiting thread

* cygtls.cc (_cygtls::remove): Call remove_pending_sigs.
	* cygtls.h (_cygtls::remove_pending_sigs): Declare.
	* sigproc.cc (pending_signals::clear): Define new method taking a
	_cygtls pointer argument.  Drop pending signals for that thread.
	(_cygtls::remove_pending_sigs): Call pending_signals::clear for this
	thread.

Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
This commit is contained in:
Corinna Vinschen
2015-10-23 14:30:40 +02:00
parent 505812d042
commit cf51db8baa
4 changed files with 30 additions and 1 deletions

View File

@@ -187,6 +187,7 @@ _cygtls::remove (DWORD wait)
/* FIXME: Need some sort of atthreadexit function to allow things like
select to control this themselves. */
remove_pending_sigs ();
if (signal_arrived)
{
HANDLE h = signal_arrived;