summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--winsup/cygwin/ChangeLog5
-rw-r--r--winsup/cygwin/cygtls.cc2
-rw-r--r--winsup/cygwin/sigproc.cc3
3 files changed, 8 insertions, 2 deletions
diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog
index aae9a4a9f..f4aa368fd 100644
--- a/winsup/cygwin/ChangeLog
+++ b/winsup/cygwin/ChangeLog
@@ -1,5 +1,10 @@
2005-12-13 Christopher Faylor <cgf@timesys.com>
+ * cygtls.cc (_cygtls::remove): Don't bother if we're exiting.
+ * sigproc.cc (_cygtls::remove_wq): Ditto.
+
+2005-12-13 Christopher Faylor <cgf@timesys.com>
+
* fhandler_tty.cc (fhandler_tty::open): Enhance comment.
2005-12-13 Corinna Vinschen <corinna@vinschen.de>
diff --git a/winsup/cygwin/cygtls.cc b/winsup/cygwin/cygtls.cc
index 568c5af23..e8e846e54 100644
--- a/winsup/cygwin/cygtls.cc
+++ b/winsup/cygwin/cygtls.cc
@@ -147,7 +147,7 @@ void
_cygtls::remove (DWORD wait)
{
debug_printf ("wait %p", wait);
- if (!locals.exitsock)
+ if (!locals.exitsock || exit_state >= ES_FINAL)
return;
if (wait)
{
diff --git a/winsup/cygwin/sigproc.cc b/winsup/cygwin/sigproc.cc
index 2c3652c6f..d719b3334 100644
--- a/winsup/cygwin/sigproc.cc
+++ b/winsup/cygwin/sigproc.cc
@@ -355,7 +355,8 @@ out1:
void
_cygtls::remove_wq (DWORD wait)
{
- if (sync_proc_subproc && sync_proc_subproc.acquire (wait))
+ if (exit_state < ES_FINAL && sync_proc_subproc
+ && sync_proc_subproc.acquire (wait))
{
for (waitq *w = &waitq_head; w->next != NULL; w = w->next)
if (w->next == &wq)