* thread.h (pthread::init_mainthread): Add parameter forked. Set forked
default to false.. * thread.cc (MTinterface::fixup_after_fork): Call pthread::init_mainthread with forked = true. (pthread::init_mainthread): Add parameter forked. Do not change thread self pointer when forked.
This commit is contained in:
@@ -153,7 +153,7 @@ MTinterface::fixup_after_fork (void)
|
||||
pthread_key::fixup_after_fork ();
|
||||
|
||||
threadcount = 0;
|
||||
pthread::init_mainthread ();
|
||||
pthread::init_mainthread (true);
|
||||
|
||||
pthread::fixup_after_fork ();
|
||||
pthread_mutex::fixup_after_fork ();
|
||||
@@ -166,14 +166,19 @@ MTinterface::fixup_after_fork (void)
|
||||
|
||||
/* static methods */
|
||||
void
|
||||
pthread::init_mainthread ()
|
||||
pthread::init_mainthread (const bool forked)
|
||||
{
|
||||
pthread *thread = get_tls_self_pointer ();
|
||||
if (!thread)
|
||||
{
|
||||
thread = new pthread ();
|
||||
if (!thread)
|
||||
api_fatal ("failed to create mainthread object");
|
||||
if (forked)
|
||||
thread = pthread_null::get_null_pthread ();
|
||||
else
|
||||
{
|
||||
thread = new pthread ();
|
||||
if (!thread)
|
||||
api_fatal ("failed to create mainthread object");
|
||||
}
|
||||
}
|
||||
|
||||
thread->cygtls = &_my_tls;
|
||||
|
Reference in New Issue
Block a user