summaryrefslogtreecommitdiff
path: root/pthread_support.c
diff options
context:
space:
mode:
authorIvan Maidanski <ivmai@mail.ru>2012-04-21 17:57:25 +0200
committerIvan Maidanski <ivmai@mail.ru>2012-04-22 13:20:33 +0200
commit0cd5a174735d716cf3eb2df0133840fd8280c553 (patch)
tree251015be9b350324847e1cc53f646673b6f20cf9 /pthread_support.c
parent6eb24292d4cd371013c15e31e8d827bb38672acf (diff)
Fix GC_remove_all_threads_but_me to cleanup thread-specific data storage
* pthread_support.c (GC_remove_all_threads_but_me): Call GC_remove_specific after destroying thread-local list.
Diffstat (limited to 'pthread_support.c')
-rw-r--r--pthread_support.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/pthread_support.c b/pthread_support.c
index 652e4a7..216d4d2 100644
--- a/pthread_support.c
+++ b/pthread_support.c
@@ -649,6 +649,7 @@ STATIC void GC_remove_all_threads_but_me(void)
# ifdef THREAD_LOCAL_ALLOC
if (!(p -> flags & FINISHED)) {
GC_destroy_thread_local(&(p->tlfs));
+ GC_remove_specific(GC_thread_key);
}
# endif
if (p != &first_thread) GC_INTERNAL_FREE(p);