diff options
-rw-r--r-- | winsup/cygwin/ChangeLog | 5 | ||||
-rw-r--r-- | winsup/cygwin/exceptions.cc | 1 |
2 files changed, 6 insertions, 0 deletions
diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog index 2ad220cb4..07ba4f9ca 100644 --- a/winsup/cygwin/ChangeLog +++ b/winsup/cygwin/ChangeLog @@ -1,3 +1,8 @@ +2011-10-28 Christopher Faylor <me.cygwin2011@cgf.cx> + + * exceptions.cc (sigpacket::process): Avoid a potential deadlock when + exiting due to a signal. + 2011-10-28 Corinna Vinschen <corinna@vinschen.de> * cygwin.din (getgrouplist): Export. diff --git a/winsup/cygwin/exceptions.cc b/winsup/cygwin/exceptions.cc index a5e0e874a..aef82018d 100644 --- a/winsup/cygwin/exceptions.cc +++ b/winsup/cygwin/exceptions.cc @@ -1321,6 +1321,7 @@ exit_sig: if (cygheap->rlim_core > 0UL) si.si_signo |= 0x80; } + SetEvent (signal_arrived); // To avoid a potential deadlock with proc_lock sigproc_printf ("signal %d, about to call do_exit", si.si_signo); use_tls->signal_exit (si.si_signo); /* never returns */ } |