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.
+2004-03-30 Thomas Pfaff <tpfaff@gmx.net>
+
+ * 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.
+
2004-03-30 Corinna Vinschen <corinna@vinschen.de>
* shm.cc (shmat): If shmid is unknown, call a special variation
pthread_key::fixup_after_fork ();
threadcount = 0;
- pthread::init_mainthread ();
+ pthread::init_mainthread (true);
pthread::fixup_after_fork ();
pthread_mutex::fixup_after_fork ();
/* 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;
pthread ();
virtual ~pthread ();
- static void init_mainthread ();
+ static void init_mainthread (const bool forked = false);
static bool is_good_object(pthread_t const *);
static void atforkprepare();
static void atforkparent();