diff options
author | Christopher Faylor <me@cgf.cx> | 2005-10-03 17:23:54 +0000 |
---|---|---|
committer | Christopher Faylor <me@cgf.cx> | 2005-10-03 17:23:54 +0000 |
commit | fa35a1ee5c602b765ca8a2886b2062971f871c47 (patch) | |
tree | 74af3f7a62b54047beedf3b65b26a1e3157411e6 /winsup/cygwin/dcrt0.cc | |
parent | 8afb8202d457c054d411988ffd980eea466045a9 (diff) | |
download | cygnal-fa35a1ee5c602b765ca8a2886b2062971f871c47.tar.gz cygnal-fa35a1ee5c602b765ca8a2886b2062971f871c47.tar.bz2 cygnal-fa35a1ee5c602b765ca8a2886b2062971f871c47.zip |
* cygheap.h (class process_lock): New class.
* dtable.h (class dtable): Add class process_lock as a friend.
* dcrt0.cc (get_exit_lock): Delete.
(do_exit): Use process_lock class instead of get_exit_lock.
* exceptions.cc (signal_exit): Ditto.
* pinfo.cc (pinfo::exit): Ditto.
(_pinfo::commune_process): Set process lock around this whole function.
(_pinfo::commune_request): Use process_lock rather than myself.lock.
* pinfo.h (pinfo::_lock): Delete.
(pinfo::initialize_lock): Delete.
(pinfo::lock): Delete.
(pinfo::unlock): Delete.
* winsup.h (get_exit_lock): Delete declaration.
Diffstat (limited to 'winsup/cygwin/dcrt0.cc')
-rw-r--r-- | winsup/cygwin/dcrt0.cc | 13 |
1 files changed, 1 insertions, 12 deletions
diff --git a/winsup/cygwin/dcrt0.cc b/winsup/cygwin/dcrt0.cc index 48a7b9fe0..6f82e1273 100644 --- a/winsup/cygwin/dcrt0.cc +++ b/winsup/cygwin/dcrt0.cc @@ -1021,7 +1021,7 @@ do_exit (int status) } #endif - get_exit_lock (); + process_lock until_exit (true); if (exit_state < ES_GLOBAL_DTORS) { @@ -1138,17 +1138,6 @@ _exit (int n) do_exit (((DWORD) n & 0xff) << 8); } -void -get_exit_lock () -{ - myself.lock (); - if (exit_state < ES_SET_MUTO) - { - exit_state = ES_SET_MUTO; - muto::set_exiting_thread (); - } -} - extern "C" void __api_fatal (const char *fmt, ...) { |