diff options
-rw-r--r-- | libpthread/linuxthreads/pthread.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/libpthread/linuxthreads/pthread.c b/libpthread/linuxthreads/pthread.c index 5142d4c13..ace6ac9eb 100644 --- a/libpthread/linuxthreads/pthread.c +++ b/libpthread/linuxthreads/pthread.c @@ -384,6 +384,9 @@ int __pthread_initialize_manager(void) | __pthread_initial_thread.p_eventbuf.eventmask.event_bits[idx])) != 0) { + + __pthread_lock(__pthread_manager_thread.p_lock, NULL); + pid = clone(__pthread_manager_event, (void **) __pthread_manager_thread_tos, CLONE_VM | CLONE_FS | CLONE_FILES | CLONE_SIGHAND, @@ -404,10 +407,9 @@ int __pthread_initialize_manager(void) /* Now call the function which signals the event. */ __linuxthreads_create_event (); - - /* Now restart the thread. */ - __pthread_unlock(__pthread_manager_thread.p_lock); } + /* Now restart the thread. */ + __pthread_unlock(__pthread_manager_thread.p_lock); } } |