run pthread tsd destructors when a timer thread pretends to exit
diff --git a/src/time/timer_create.c b/src/time/timer_create.c
index 1b184f7..c107e15 100644
--- a/src/time/timer_create.c
+++ b/src/time/timer_create.c
@@ -13,11 +13,17 @@
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);
}