diff options
Diffstat (limited to 'linuxthreads')
-rw-r--r-- | linuxthreads/ChangeLog | 5 | ||||
-rw-r--r-- | linuxthreads/pthread.c | 8 |
2 files changed, 10 insertions, 3 deletions
diff --git a/linuxthreads/ChangeLog b/linuxthreads/ChangeLog index 10abc40329..5d06c1c572 100644 --- a/linuxthreads/ChangeLog +++ b/linuxthreads/ChangeLog @@ -1,3 +1,8 @@ +2000-07-18 Jakub Jelinek <jakub@redhat.com> + + * pthread.c (__pthread_initialize_manager): Lock + __pthread_manager_thread.p_lock before calling clone. + 2000-05-05 H.J. Lu <hjl@gnu.org> * sysdeps/ia64/pt-machine.h (__compare_and_swap): Change it to diff --git a/linuxthreads/pthread.c b/linuxthreads/pthread.c index d70e3f4b1f..c264da53ab 100644 --- a/linuxthreads/pthread.c +++ b/linuxthreads/pthread.c @@ -450,6 +450,8 @@ int __pthread_initialize_manager(void) | __pthread_initial_thread.p_eventbuf.eventmask.event_bits[idx])) != 0) { + __pthread_lock(__pthread_manager_thread.p_lock, NULL); + #ifdef NEED_SEPARATE_REGISTER_STACK pid = __clone2(__pthread_manager_event, (void **) __pthread_manager_thread_bos, @@ -478,10 +480,10 @@ 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); } } |