summaryrefslogtreecommitdiffstats
path: root/winsup/cygwin/dcrt0.cc
diff options
context:
space:
mode:
authorChristopher Faylor <me@cgf.cx>2005-10-03 17:23:54 +0000
committerChristopher Faylor <me@cgf.cx>2005-10-03 17:23:54 +0000
commitfa35a1ee5c602b765ca8a2886b2062971f871c47 (patch)
tree74af3f7a62b54047beedf3b65b26a1e3157411e6 /winsup/cygwin/dcrt0.cc
parent8afb8202d457c054d411988ffd980eea466045a9 (diff)
downloadcygnal-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.cc13
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, ...)
{