From 7e6a89bcf073ba896a01793098c84462fd0f5f3b Mon Sep 17 00:00:00 2001 From: Eric Andersen Date: Thu, 23 Jan 2003 07:57:02 +0000 Subject: Per patch from Nathan Field at ghs.com, fix __pthread_initialize_manager so it locks before calling clone when under a debugger, and unlocks on success or failure of clone when under a debugger. --- libpthread/linuxthreads/pthread.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'libpthread/linuxthreads/pthread.c') 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); } } -- cgit v1.2.3