From f58c8a0f391987a65e055ae591ec59b9df7b7f7c Mon Sep 17 00:00:00 2001 From: Rich Felker Date: Tue, 14 Jun 2011 01:25:17 -0400 Subject: [PATCH] run dtors before taking the exit-lock in pthread exit previously a long-running dtor could cause pthread_detach to block. --- src/thread/pthread_create.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/thread/pthread_create.c b/src/thread/pthread_create.c index d1eea0ce..c856c581 100644 --- a/src/thread/pthread_create.c +++ b/src/thread/pthread_create.c @@ -22,10 +22,10 @@ void __pthread_unwind_next(struct __ptcb *cb) longjmp((void *)cb->__next->__jb, 1); } - __lock(&self->exitlock); - __pthread_tsd_run_dtors(); + __lock(&self->exitlock); + /* Mark this thread dead before decrementing count */ self->dead = 1; -- 2.20.1