* 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

@@ -181,7 +181,8 @@ void
pinfo::exit (DWORD n)
{
minimal_printf ("winpid %d, exit %d", GetCurrentProcessId (), n);
lock_process until_exit ();
sigproc_terminate (ES_FINAL);
lock_process until_exit (true);
cygthread::terminate ();
if (n != EXITCODE_NOSET)
@@ -192,7 +193,6 @@ pinfo::exit (DWORD n)
maybe_set_exit_code_from_windows ();
}
sigproc_terminate (ES_FINAL);
if (myself->ctty > 0 && !iscons_dev (myself->ctty))
{
lock_ttys here;