From 2c8fd4069587c530504cbc66e63371bed8ccb8d6 Mon Sep 17 00:00:00 2001 From: Christopher Faylor Date: Tue, 13 Dec 2005 16:01:57 +0000 Subject: * cygtls.cc (_cygtls::remove): Don't bother if we're exiting. * sigproc.cc (_cygtls::remove_wq): Ditto. --- winsup/cygwin/ChangeLog | 5 +++++ winsup/cygwin/cygtls.cc | 2 +- winsup/cygwin/sigproc.cc | 3 ++- 3 files changed, 8 insertions(+), 2 deletions(-) (limited to 'winsup/cygwin') diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog index aae9a4a9f..f4aa368fd 100644 --- a/winsup/cygwin/ChangeLog +++ b/winsup/cygwin/ChangeLog @@ -1,3 +1,8 @@ +2005-12-13 Christopher Faylor + + * cygtls.cc (_cygtls::remove): Don't bother if we're exiting. + * sigproc.cc (_cygtls::remove_wq): Ditto. + 2005-12-13 Christopher Faylor * fhandler_tty.cc (fhandler_tty::open): Enhance comment. 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) -- cgit v1.2.3