fix potential race condition in detached threads
[musl] / src / thread / pthread_detach.c
index 8ef03d5..e803239 100644 (file)
@@ -5,7 +5,7 @@ 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 = 1;
-       t->exitlock = 0;
+       t->detached = 2;
+       a_store(&t->exitlock, 0);
        return 0;
 }