From be14b608aad549a7d226a3e75e40ab500324cf4e Mon Sep 17 00:00:00 2001 From: Christopher Faylor Date: Wed, 21 Jan 2004 15:16:10 +0000 Subject: * cygtls.cc (handle_threadlist_exception): Change logic, improve debugging output. --- winsup/cygwin/cygtls.cc | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) (limited to 'winsup/cygwin/cygtls.cc') diff --git a/winsup/cygwin/cygtls.cc b/winsup/cygwin/cygtls.cc index ecec3f52b..6e31d66e6 100644 --- a/winsup/cygwin/cygtls.cc +++ b/winsup/cygwin/cygtls.cc @@ -200,13 +200,26 @@ extern "C" DWORD __stdcall RtlUnwind (void *, void *, void *, DWORD); static int handle_threadlist_exception (EXCEPTION_RECORD *e, void *frame, CONTEXT *, void *) { - small_printf ("in handle_threadlist_exception!\n"); if (e->ExceptionCode != STATUS_ACCESS_VIOLATION) - return 1; + { + system_printf ("handle_threadlist_exception called with exception code %d\n", + e->ExceptionCode); + return 1; + } sentry here; - if (threadlist_ix != BAD_IX || !here.acquired ()) - return 1; + if (threadlist_ix == BAD_IX) + { + system_printf ("handle_threadlist_exception called with threadlist_ix %d\n", + BAD_IX); + return 1; + } + + if (!here.acquired ()) + { + system_printf ("handle_threadlist_exception couldn't aquire muto\n"); + return 1; + } extern void *threadlist_exception_return; cygheap->threadlist[threadlist_ix]->remove (INFINITE); -- cgit v1.2.3