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 + + * sigproc.cc (exit_thread): Set thread signal mask so that no signals + are sent to an exiting thread. + 2013-01-02 Christopher Faylor * 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 ();