summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--winsup/cygwin/ChangeLog5
-rw-r--r--winsup/cygwin/exceptions.cc1
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 */
}