summaryrefslogtreecommitdiffstats
path: root/winsup/cygwin/dcrt0.cc
diff options
context:
space:
mode:
authorChristopher Faylor <me@cgf.cx>2005-10-23 23:47:45 +0000
committerChristopher Faylor <me@cgf.cx>2005-10-23 23:47:45 +0000
commit82c925af80cb4493cc15861c18fea64c57c2ee60 (patch)
tree41f157a058cabbec22fcd979bb5c63730699c3ee /winsup/cygwin/dcrt0.cc
parentc2c020d1fb082baff8dfd2f2ca93c66bf7151bd0 (diff)
downloadcygnal-82c925af80cb4493cc15861c18fea64c57c2ee60.tar.gz
cygnal-82c925af80cb4493cc15861c18fea64c57c2ee60.tar.bz2
cygnal-82c925af80cb4493cc15861c18fea64c57c2ee60.zip
* cygheap.h (cygheap_fdenum::cygheap_fdenum): Record locked state or suffer
deadlocks. (class locked_process): Move to another header. * sync.h (lock_process): Define here. * cygtls.cc (_cygtls::fixup_after_fork): Reset spinning state as well as stacklock state. * dcrt0.cc (lock_process::locker): Define. (dtable::lock_cs): Delete. * dtable.cc (dtable_init): Eliminate call to init_lock(). (dtable::fixup_after_fork): Ditto. (dtable::init_lock): Delete definition. * dtable.h (dtable::init_lock): Delete declaration. (dtable::lock): Use process lock rather than dtable-specific lock. (dtable::unlock): Ditto. * sigproc.cc (sigproc_init): Minor change to debugging output. * times.cc (utime_worker): Use build_fh_pc rather than reinterpreting the posix path name again. Return any error from path_conv immediately.
Diffstat (limited to 'winsup/cygwin/dcrt0.cc')
-rw-r--r--winsup/cygwin/dcrt0.cc5
1 files changed, 3 insertions, 2 deletions
diff --git a/winsup/cygwin/dcrt0.cc b/winsup/cygwin/dcrt0.cc
index 03df872c0..7599986bf 100644
--- a/winsup/cygwin/dcrt0.cc
+++ b/winsup/cygwin/dcrt0.cc
@@ -47,8 +47,8 @@ HANDLE NO_COPY hMainProc = (HANDLE) -1;
HANDLE NO_COPY hMainThread;
HANDLE NO_COPY hProcToken;
HANDLE NO_COPY hProcImpToken;
-muto NO_COPY dtable::lock_cs; /* This should be in dtable.cc but it causes inexplicable
- errors there. */
+
+muto NO_COPY lock_process::locker;
bool display_title;
bool strip_title_path;
@@ -636,6 +636,7 @@ get_cygwin_startup_info ()
void __stdcall
dll_crt0_0 ()
{
+ lock_process::init ();
init_console_handler (TRUE);
_impure_ptr = _GLOBAL_REENT;
_impure_ptr->_stdin = &_impure_ptr->__sf[0];