about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorRich Felker <dalias@aerifal.cx>2011-04-09 02:26:55 -0400
committerRich Felker <dalias@aerifal.cx>2011-04-09 02:26:55 -0400
commit2063c4cac27f118c21dcb9352e8a4903131c88c8 (patch)
tree21f274f8b6db695a46996e66e8e850f6867ac5af /src
parent82171d6ac0d84876cdc6dd6319b0790b42cdb47e (diff)
downloadmusl-2063c4cac27f118c21dcb9352e8a4903131c88c8.tar.gz
musl-2063c4cac27f118c21dcb9352e8a4903131c88c8.tar.xz
musl-2063c4cac27f118c21dcb9352e8a4903131c88c8.zip
run pthread tsd destructors when a timer thread pretends to exit
Diffstat (limited to 'src')
-rw-r--r--src/time/timer_create.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/time/timer_create.c b/src/time/timer_create.c
index 1b184f74..c107e150 100644
--- a/src/time/timer_create.c
+++ b/src/time/timer_create.c
@@ -13,11 +13,17 @@ struct start_args {
 	struct sigevent *sev;
 };
 
+static void dummy_1(pthread_t self)
+{
+}
+weak_alias(dummy_1, __pthread_tsd_run_dtors);
+
 static void cleanup_fromsig(void *p)
 {
 	pthread_t self = __pthread_self();
 	self->cancel = 0;
 	self->cancelbuf = 0;
+	__pthread_tsd_run_dtors(self);
 	longjmp(p, 1);
 }