diff options
Diffstat (limited to 'winsup/cygwin')
-rw-r--r-- | winsup/cygwin/ChangeLog | 5 | ||||
-rw-r--r-- | winsup/cygwin/sigproc.cc | 3 |
2 files changed, 7 insertions, 1 deletions
diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog index d962ca601..3b28859ac 100644 --- a/winsup/cygwin/ChangeLog +++ b/winsup/cygwin/ChangeLog @@ -1,3 +1,8 @@ +2013-01-03 Christopher Faylor <me.cygwin2013@cgf.cx> + + * sigproc.cc (exit_thread): Set thread signal mask so that no signals + are sent to an exiting thread. + 2013-01-02 Christopher Faylor <me.cygwin2013@cgf.cx> * sigproc.cc (no_signals_available): Remove exit_state test since diff --git a/winsup/cygwin/sigproc.cc b/winsup/cygwin/sigproc.cc index 122f4f865..4e8094073 100644 --- a/winsup/cygwin/sigproc.cc +++ b/winsup/cygwin/sigproc.cc @@ -488,7 +488,8 @@ sigproc_terminate (exit_states es) void exit_thread (DWORD res) { - lock_process for_now; /* May block indefinitely if we're exiting. */ + sigfillset (&_my_tls.sigmask); /* No signals wanted */ + lock_process for_now; /* May block indefinitely when exiting. */ if (exit_state) { for_now.release (); |