From: Samuel Thibault Date: Mon, 14 Feb 2022 00:39:35 +0000 (+0100) Subject: htl: Destroy thread-specific data before releasing joins X-Git-Tag: glibc-2.36~682 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=7a06be051c01b4325927efab5b4e4280bb4a5a42;p=thirdparty%2Fglibc.git htl: Destroy thread-specific data before releasing joins Applications may want to assume that after pthread_join() returns, all thread-specific data has been released. --- diff --git a/htl/pt-exit.c b/htl/pt-exit.c index db1c14c5204..f0759c8738e 100644 --- a/htl/pt-exit.c +++ b/htl/pt-exit.c @@ -54,6 +54,9 @@ __pthread_exit (void *status) /* We are the last thread. */ exit (0); + /* Destroy any thread specific data. */ + __pthread_destroy_specific (self); + /* Note that after this point the process can be terminated at any point if another thread calls `pthread_exit' and happens to be the last thread. */ @@ -92,9 +95,6 @@ __pthread_exit (void *status) break; } - /* Destroy any thread specific data. */ - __pthread_destroy_specific (self); - /* Destroy any signal state. */ __pthread_sigstate_destroy (self);