From f02f1f144422e878a30befcdda6f10df4b065663 Mon Sep 17 00:00:00 2001 From: Christopher Faylor Date: Thu, 24 Feb 2000 02:49:44 +0000 Subject: * exceptions.cc (interruptible): Change method for determining if something is interruptible. (call_handler): Avoid suspending a thread if it owns a mutex. Only set signal_arrived if the thread was actually interrupted. (events_init): Initialize module information needed by interruptible(). (sigdelayed): Don't call sig_dispatch_pending since it could screw up * init.cc (dll_entry): Record module handle of main for use by interruptible(). (proc_subproc): Reorganize handling of terminated child so that the bulk of the processing comes from the signal thread. (wait_sig): Force processing of waiting threads if SIGCHLD is not processed. * sync.cc (muto::release): Set tid == 0 after lock is released or signal processor will be confused. --- winsup/cygwin/sync.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'winsup/cygwin/sync.h') diff --git a/winsup/cygwin/sync.h b/winsup/cygwin/sync.h index 37efbe54f..7189ae936 100644 --- a/winsup/cygwin/sync.h +++ b/winsup/cygwin/sync.h @@ -1,6 +1,6 @@ /* sync.h: Header file for cygwin synchronization primitives. - Copyright 1999 Cygnus Solutions. + Copyright 1999, 2000 Cygnus Solutions. Written by Christopher Faylor @@ -36,6 +36,7 @@ public: /* Return true if caller thread owns the lock. */ int ismine () {return tid == GetCurrentThreadId ();} + DWORD owner () {return tid;} }; /* Use a statically allocated buffer as the storage for a muto */ -- cgit v1.2.3