run pthread tsd destructors when a timer thread pretends to exit
authorRich Felker <dalias@aerifal.cx>
Sat, 9 Apr 2011 06:26:55 +0000 (02:26 -0400)
committerRich Felker <dalias@aerifal.cx>
Sat, 9 Apr 2011 06:26:55 +0000 (02:26 -0400)
src/time/timer_create.c

index 1b184f74867cd6b8390c194dd73af484db219e87..c107e150d12a66794cb274b3b4066af9e2b6fe0b 100644 (file)
@@ -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);
 }