musl/src/thread/pthread_detach.c
Rich Felker bbbe87e35c fix several locks that weren't updated right for new futex-based __lock
these could have caused memory corruption due to invalid accesses to
the next field. all should be fixed now; I found the errors with fgrep
-r '__lock(&', which is bogus since the argument should be an array.
2012-07-12 11:23:43 -04:00

11 lines
227 B
C

#include "pthread_impl.h"
int pthread_detach(pthread_t t)
{
/* Cannot detach a thread that's already exiting */
if (a_swap(t->exitlock, 1))
return pthread_join(t, 0);
t->detached = 2;
__unlock(t->exitlock);
return 0;
}