Browse Source

run pthread tsd destructors when a timer thread pretends to exit

Rich Felker 14 years ago
parent
commit
2063c4cac2
1 changed files with 6 additions and 0 deletions
  1. 6 0
      src/time/timer_create.c

+ 6 - 0
src/time/timer_create.c

@@ -13,11 +13,17 @@ struct start_args {
 	struct sigevent *sev;
 	struct sigevent *sev;
 };
 };
 
 
+static void dummy_1(pthread_t self)
+{
+}
+weak_alias(dummy_1, __pthread_tsd_run_dtors);
+
 static void cleanup_fromsig(void *p)
 static void cleanup_fromsig(void *p)
 {
 {
 	pthread_t self = __pthread_self();
 	pthread_t self = __pthread_self();
 	self->cancel = 0;
 	self->cancel = 0;
 	self->cancelbuf = 0;
 	self->cancelbuf = 0;
+	__pthread_tsd_run_dtors(self);
 	longjmp(p, 1);
 	longjmp(p, 1);
 }
 }