From: Rich Felker Date: Tue, 14 Jun 2011 05:25:17 +0000 (-0400) Subject: run dtors before taking the exit-lock in pthread exit X-Git-Url: http://nsz.repo.hu/git/?p=musl;a=commitdiff_plain;h=f58c8a0f391987a65e055ae591ec59b9df7b7f7c;ds=sidebyside run dtors before taking the exit-lock in pthread exit previously a long-running dtor could cause pthread_detach to block. --- 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;