aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoland McGrath <roland@gnu.org>2003-02-22 08:33:25 +0000
committerRoland McGrath <roland@gnu.org>2003-02-22 08:33:25 +0000
commit12d7ca07e2ec81d96ed292ca0ba7922bb4d12193 (patch)
treeea073906899518ba56211c738dbc0b7c5fa6870b
parent71028edd8f9ddbc05f0013d434e0b5cbceee2148 (diff)
downloadglibc-12d7ca07e2ec81d96ed292ca0ba7922bb4d12193.zip
glibc-12d7ca07e2ec81d96ed292ca0ba7922bb4d12193.tar.gz
glibc-12d7ca07e2ec81d96ed292ca0ba7922bb4d12193.tar.bz2
2003-02-21 Roland McGrath <roland@redhat.com>
* pthread_create.c (start_thread): Call __libc_thread_freeres.
-rw-r--r--nptl/pthread_create.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/nptl/pthread_create.c b/nptl/pthread_create.c
index bac7455..40a95c6 100644
--- a/nptl/pthread_create.c
+++ b/nptl/pthread_create.c
@@ -25,6 +25,7 @@
#include <hp-timing.h>
#include <ldsodefs.h>
#include <atomic.h>
+#include <libc-internal.h>
#include <shlib-compat.h>
@@ -227,6 +228,8 @@ start_thread (void *arg)
pd->result = pd->start_routine (pd->arg);
}
+ /* Clean up any state libc stored in thread-local variables. */
+ __libc_thread_freeres ();
/* If this is the last thread we terminate the process now. We
do not notify the debugger, it might just irritate it if there
@@ -235,7 +238,6 @@ start_thread (void *arg)
/* This was the last thread. */
exit (0);
-
/* Report the death of the thread if this is wanted. */
if (__builtin_expect (pd->report_events, 0))
{