aboutsummaryrefslogtreecommitdiff
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.zip
glibc-6461e57784358cf4fd261e5e61d064a315aae924.tar.gz
glibc-6461e57784358cf4fd261e5e61d064a315aae924.tar.bz2
* 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 58116f7..519d0c6 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))