* 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.
This commit is contained in:
@ -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 <cgf@cygnus.com>
|
||||
|
||||
@ -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 */
|
||||
|
Reference in New Issue
Block a user