From 1b96f7da4592061bffad3e45181b3fd381c40079 Mon Sep 17 00:00:00 2001 From: Christopher Faylor Date: Thu, 9 Jun 2005 23:48:08 +0000 Subject: * cygthread.cc (cygthread::detach): Improve diagnostics for what should be an impossible failure condition. --- winsup/cygwin/cygthread.cc | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) (limited to 'winsup/cygwin/cygthread.cc') diff --git a/winsup/cygwin/cygthread.cc b/winsup/cygwin/cygthread.cc index af60abf2a..896086834 100644 --- a/winsup/cygwin/cygthread.cc +++ b/winsup/cygwin/cygthread.cc @@ -344,7 +344,20 @@ cygthread::detach (HANDLE sigwait) break; default: if (!exiting) - api_fatal ("WFMO failed waiting for cygthread '%s', %E", __name); + { + system_printf ("WFMO failed waiting for cygthread '%s', %E", __name); + for (unsigned j = 0; j < n; j++) + switch (WaitForSingleObject (w4[j], 0)) + { + case WAIT_OBJECT_0: + case WAIT_TIMEOUT: + break; + default: + system_printf ("%s handle %p is bad", j ? "semaphore" : "signal_arrived", w4[j]); + break; + } + api_fatal ("exiting on fatal error"); + } break; } /* WAIT_OBJECT_0 means that the thread successfully read something, -- cgit v1.2.3