* exceptions.cc (_cygtls::signal_exit): Only call myself.exit when when
exit_state indicates that we've visited do_exit. * sync.h (lock_process::lock_process): Use renamed exit_state - ES_PROCESS_LOCKED. * winsup.h: Rename ES_MUTO_SET to ES_PROCESS_LOCKED.
This commit is contained in:
parent
fe32d85c52
commit
d0cf179299
|
@ -1,3 +1,11 @@
|
||||||
|
2007-02-20 Christopher Faylor <me@cgf.cx>
|
||||||
|
|
||||||
|
* exceptions.cc (_cygtls::signal_exit): Only call myself.exit when when
|
||||||
|
exit_state indicates that we've visited do_exit.
|
||||||
|
* sync.h (lock_process::lock_process): Use renamed exit_state -
|
||||||
|
ES_PROCESS_LOCKED.
|
||||||
|
* winsup.h: Rename ES_MUTO_SET to ES_PROCESS_LOCKED.
|
||||||
|
|
||||||
2007-02-20 Corinna Vinschen <corinna@vinschen.de>
|
2007-02-20 Corinna Vinschen <corinna@vinschen.de>
|
||||||
|
|
||||||
* fhandler_socket.cc (fhandler_socket::bind): Remove printing wrong
|
* fhandler_socket.cc (fhandler_socket::bind): Remove printing wrong
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/* exceptions.cc
|
/* exceptions.cc
|
||||||
|
|
||||||
Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
|
Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
|
||||||
2005, 2006 Red Hat, Inc.
|
2005, 2006, 2007 Red Hat, Inc.
|
||||||
|
|
||||||
This file is part of Cygwin.
|
This file is part of Cygwin.
|
||||||
|
|
||||||
|
@ -1288,7 +1288,7 @@ _cygtls::signal_exit (int rc)
|
||||||
stackdump (thread_context.ebp, 1, 1);
|
stackdump (thread_context.ebp, 1, 1);
|
||||||
|
|
||||||
lock_process until_exit (true);
|
lock_process until_exit (true);
|
||||||
if (hExeced || exit_state)
|
if (hExeced || exit_state > ES_PROCESS_LOCKED)
|
||||||
myself.exit (rc);
|
myself.exit (rc);
|
||||||
|
|
||||||
/* Starve other threads in a vain attempt to stop them from doing something
|
/* Starve other threads in a vain attempt to stop them from doing something
|
||||||
|
|
|
@ -55,9 +55,9 @@ public:
|
||||||
{
|
{
|
||||||
locker.acquire ();
|
locker.acquire ();
|
||||||
skip_unlock = exiting;
|
skip_unlock = exiting;
|
||||||
if (exiting && exit_state < ES_SET_MUTO)
|
if (exiting && exit_state < ES_PROCESS_LOCKED)
|
||||||
{
|
{
|
||||||
exit_state = ES_SET_MUTO;
|
exit_state = ES_PROCESS_LOCKED;
|
||||||
muto::set_exiting_thread ();
|
muto::set_exiting_thread ();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -185,7 +185,7 @@ extern "C" int dll_noncygwin_dllcrt0 (HMODULE, per_process *);
|
||||||
enum exit_states
|
enum exit_states
|
||||||
{
|
{
|
||||||
ES_NOT_EXITING = 0,
|
ES_NOT_EXITING = 0,
|
||||||
ES_SET_MUTO,
|
ES_PROCESS_LOCKED,
|
||||||
ES_GLOBAL_DTORS,
|
ES_GLOBAL_DTORS,
|
||||||
ES_EVENTS_TERMINATE,
|
ES_EVENTS_TERMINATE,
|
||||||
ES_THREADTERM,
|
ES_THREADTERM,
|
||||||
|
|
Loading…
Reference in New Issue