about summary refs log tree commit diff
path: root/src/thread/pthread_detach.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/thread/pthread_detach.c')
-rw-r--r--src/thread/pthread_detach.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/thread/pthread_detach.c b/src/thread/pthread_detach.c
index ed77f74d..13482607 100644
--- a/src/thread/pthread_detach.c
+++ b/src/thread/pthread_detach.c
@@ -9,7 +9,8 @@ static int __pthread_detach(pthread_t t)
 	if (a_swap(t->exitlock, 1))
 		return __pthread_join(t, 0);
 	t->detached = 2;
-	__unlock(t->exitlock);
+	a_store(t->exitlock, 0);
+	__wake(t->exitlock, 1, 1);
 	return 0;
 }