diff options
-rw-r--r-- | winsup/cygwin/ChangeLog | 5 | ||||
-rw-r--r-- | winsup/cygwin/cygtls.cc | 2 | ||||
-rw-r--r-- | winsup/cygwin/sigproc.cc | 3 |
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) |