* exceptions.cc (sigpacket::process): Move signal_exit processing into...

(_cygtls::signal_exit): ...here.  Close my_readsig and comment on why.
* pinfo.cc (pinfo::exit): Move sigproc_terminate earlier.  Set exiting flag in
lock_process.
* sigproc.cc (my_readsig): Make global.
* sync.cc (muto::exiting_thread): Delete.
(muto::acquire): Delete #if 0'ed code.
* sync.h (muto::exiting_thread): Delete.
(set_exiting_thread): Ditto.
(lock_process::lock_process): Don't worry about setting the exiting thread
since it had no meaning.
This commit is contained in:
Christopher Faylor
2011-11-26 02:35:49 +00:00
parent 505bce274f
commit 1d04c4c6c3
6 changed files with 32 additions and 25 deletions

View File

@ -17,7 +17,6 @@ class muto
public:
const char *name;
private:
static DWORD exiting_thread;
LONG sync; /* Used to serialize access to this class. */
LONG waiters; /* Number of threads waiting for lock. */
HANDLE bruteforce; /* event handle used to control waiting for lock. */
@ -39,7 +38,6 @@ public:
void upforgrabs () {tls = this;} // just set to an invalid address
void grab () __attribute__ ((regparm (1)));
operator int () const {return !!name;}
static void set_exiting_thread () {exiting_thread = GetCurrentThreadId ();}
};
class lock_process
@ -54,10 +52,7 @@ public:
locker.acquire ();
skip_unlock = exiting;
if (exiting && exit_state < ES_PROCESS_LOCKED)
{
exit_state = ES_PROCESS_LOCKED;
muto::set_exiting_thread ();
}
exit_state = ES_PROCESS_LOCKED;
}
~lock_process ()
{