summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--winsup/cygwin/ChangeLog4
-rw-r--r--winsup/cygwin/sigproc.cc3
2 files changed, 6 insertions, 1 deletions
diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog
index e9a13f3d7..5c02e0c15 100644
--- a/winsup/cygwin/ChangeLog
+++ b/winsup/cygwin/ChangeLog
@@ -1,3 +1,7 @@
+2012-03-28 Christopher Faylor <me.cygwin2012@cgf.cx>
+
+ * sigproc.cc (proc_terminate): Avoid releasing myself.
+
2012-03-28 Corinna Vinschen <corinna@vinschen.de>
* times.cc (clock_setres): Set minperiod to period.
diff --git a/winsup/cygwin/sigproc.cc b/winsup/cygwin/sigproc.cc
index dc73765be..a8a85ebb6 100644
--- a/winsup/cygwin/sigproc.cc
+++ b/winsup/cygwin/sigproc.cc
@@ -448,7 +448,8 @@ proc_terminate ()
procs[i]->ppid = 1;
if (procs[i].wait_thread)
procs[i].wait_thread->terminate_thread ();
- procs[i].release ();
+ if (procs[i] != myself)
+ procs[i].release ();
}
nprocs = 0;
sync_proc_subproc.release ();