summary refs log tree commit diff
path: root/nptl/pthread_create.c
diff options
context:
space:
mode:
authorRoland McGrath <roland@gnu.org>2003-03-13 21:51:07 +0000
committerRoland McGrath <roland@gnu.org>2003-03-13 21:51:07 +0000
commit6461e57784358cf4fd261e5e61d064a315aae924 (patch)
treec204eb7e9d3a13ead269e965d9856759c9bd946d /nptl/pthread_create.c
parent0579fabbe81afc3051b74c71907e8b5a76e2ab8a (diff)
downloadglibc-6461e57784358cf4fd261e5e61d064a315aae924.tar.gz
glibc-6461e57784358cf4fd261e5e61d064a315aae924.tar.xz
glibc-6461e57784358cf4fd261e5e61d064a315aae924.zip
* elf/Makefile ($(objpfx)librtld.mk): Tweak regexp so that one-line
	entries in the map file match too.
Diffstat (limited to 'nptl/pthread_create.c')
-rw-r--r--nptl/pthread_create.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/nptl/pthread_create.c b/nptl/pthread_create.c
index 58116f7925..519d0c6f60 100644
--- a/nptl/pthread_create.c
+++ b/nptl/pthread_create.c
@@ -227,9 +227,6 @@ start_thread (void *arg)
       THREAD_SETMEM (pd, result, pd->start_routine (pd->arg));
     }
 
-  /* The thread is exiting now.  */
-  atomic_bit_set (&pd->cancelhandling, EXITING_BIT);
-
   /* Clean up any state libc stored in thread-local variables.  */
   __libc_thread_freeres ();
 
@@ -268,6 +265,10 @@ start_thread (void *arg)
 	}
     }
 
+  /* The thread is exiting now.  Don't set this bit until after we've hit
+     the event-reporting breakpoint, so that td_thr_get_info on us while at
+     the breakpoint reports TD_THR_RUN state rather than TD_THR_ZOMBIE.  */
+  atomic_bit_set (&pd->cancelhandling, EXITING_BIT);
 
   /* If the thread is detached free the TCB.  */
   if (IS_DETACHED (pd))