| OLD | NEW |
| 1 #include "pthread_impl.h" | 1 #include "pthread_impl.h" |
| 2 #include <threads.h> | 2 #include <threads.h> |
| 3 | 3 |
| 4 int __pthread_join(pthread_t, void **); | 4 int __pthread_join(pthread_t, void**); |
| 5 | 5 |
| 6 static int __pthread_detach(pthread_t t) | 6 static int __pthread_detach(pthread_t t) { |
| 7 { | 7 /* Cannot detach a thread that's already exiting */ |
| 8 » /* Cannot detach a thread that's already exiting */ | 8 if (a_swap(t->exitlock, 1)) |
| 9 » if (a_swap(t->exitlock, 1)) | 9 return __pthread_join(t, 0); |
| 10 » » return __pthread_join(t, 0); | 10 t->detached = 2; |
| 11 » t->detached = 2; | 11 __unlock(t->exitlock); |
| 12 » __unlock(t->exitlock); | 12 return 0; |
| 13 » return 0; | |
| 14 } | 13 } |
| 15 | 14 |
| 16 weak_alias(__pthread_detach, pthread_detach); | 15 weak_alias(__pthread_detach, pthread_detach); |
| 17 weak_alias(__pthread_detach, thrd_detach); | 16 weak_alias(__pthread_detach, thrd_detach); |
| OLD | NEW |