| Index: fusl/src/thread/pthread_detach.c
|
| diff --git a/fusl/src/thread/pthread_detach.c b/fusl/src/thread/pthread_detach.c
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..ed77f74d520bff3a16ef5e055f08bbf021fe91d4
|
| --- /dev/null
|
| +++ b/fusl/src/thread/pthread_detach.c
|
| @@ -0,0 +1,17 @@
|
| +#include "pthread_impl.h"
|
| +#include <threads.h>
|
| +
|
| +int __pthread_join(pthread_t, void **);
|
| +
|
| +static 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;
|
| +}
|
| +
|
| +weak_alias(__pthread_detach, pthread_detach);
|
| +weak_alias(__pthread_detach, thrd_detach);
|
|
|