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)