summaryrefslogtreecommitdiffstats
path: root/winsup/cygwin/dcrt0.cc
diff options
context:
space:
mode:
authorThomas Pfaff <tpfaff@gmx.net>2003-05-15 19:42:51 +0000
committerThomas Pfaff <tpfaff@gmx.net>2003-05-15 19:42:51 +0000
commitc8fa3426af407099b0b55b6113f152975794d5fa (patch)
treef3474c259ee305dcd3a5eff63484e652058a8777 /winsup/cygwin/dcrt0.cc
parentac5e8cb29c19dcd286d78ad5cfa84dd6bcbf63d1 (diff)
downloadcygnal-c8fa3426af407099b0b55b6113f152975794d5fa.tar.gz
cygnal-c8fa3426af407099b0b55b6113f152975794d5fa.tar.bz2
cygnal-c8fa3426af407099b0b55b6113f152975794d5fa.zip
* thread.h (pthread::init_mainthread): Remove function parameter.
(MTinterface::Init): Ditto. * thread.cc (MTinterface::Init): Remove function parameter. Always initialize reent_key. (pthread::init_mainthread): Remove function parameter. (MTinterface::fixup_after_fork): Fix pthread::init_mainthread call. * dcrt0.cc (dll_crt_0_1) Fix calls to MTinterface::Init and pthread::init_mainthread. Call pthread::init_mainthread only when not forked.
Diffstat (limited to 'winsup/cygwin/dcrt0.cc')
-rw-r--r--winsup/cygwin/dcrt0.cc7
1 files changed, 5 insertions, 2 deletions
diff --git a/winsup/cygwin/dcrt0.cc b/winsup/cygwin/dcrt0.cc
index 9ae2e5345..a11b34277 100644
--- a/winsup/cygwin/dcrt0.cc
+++ b/winsup/cygwin/dcrt0.cc
@@ -565,7 +565,7 @@ dll_crt0_1 ()
_impure_ptr = &reent_data;
user_data->resourcelocks->Init ();
- user_data->threadinterface->Init (user_data->forkee);
+ user_data->threadinterface->Init ();
mainthread.init ("mainthread"); // For use in determining if signals
// should be blocked.
@@ -631,7 +631,10 @@ dll_crt0_1 ()
ProtectHandle (hMainThread);
cygthread::init ();
- pthread::init_mainthread (!user_data->forkee);
+ /* Initialize pthread mainthread when not forked and it is save to call new,
+ otherwise it is reinitalized in fixup_after_fork */
+ if (!user_data->forkee)
+ pthread::init_mainthread ();
/* Initialize debug muto, if DLL is built with --enable-debugging.
Need to do this before any helper threads start. */