| Index: fusl/src/thread/pthread_join.c
|
| diff --git a/fusl/src/thread/pthread_join.c b/fusl/src/thread/pthread_join.c
|
| index 694d377ad486b834bf3c8453ed092ab684fd1fc9..952bf90a7b678b55223d20a88b8df025954bd9dc 100644
|
| --- a/fusl/src/thread/pthread_join.c
|
| +++ b/fusl/src/thread/pthread_join.c
|
| @@ -1,22 +1,25 @@
|
| #include "pthread_impl.h"
|
| #include <sys/mman.h>
|
|
|
| -int __munmap(void *, size_t);
|
| +int __munmap(void*, size_t);
|
| void __pthread_testcancel(void);
|
| -int __pthread_setcancelstate(int, int *);
|
| +int __pthread_setcancelstate(int, int*);
|
|
|
| -int __pthread_join(pthread_t t, void **res)
|
| -{
|
| - int tmp, cs;
|
| - __pthread_testcancel();
|
| - __pthread_setcancelstate(PTHREAD_CANCEL_DISABLE, &cs);
|
| - if (cs == PTHREAD_CANCEL_ENABLE) __pthread_setcancelstate(cs, 0);
|
| - while ((tmp = t->tid)) __timedwait_cp(&t->tid, tmp, 0, 0, 0);
|
| - __pthread_setcancelstate(cs, 0);
|
| - a_barrier();
|
| - if (res) *res = t->result;
|
| - if (t->map_base) __munmap(t->map_base, t->map_size);
|
| - return 0;
|
| +int __pthread_join(pthread_t t, void** res) {
|
| + int tmp, cs;
|
| + __pthread_testcancel();
|
| + __pthread_setcancelstate(PTHREAD_CANCEL_DISABLE, &cs);
|
| + if (cs == PTHREAD_CANCEL_ENABLE)
|
| + __pthread_setcancelstate(cs, 0);
|
| + while ((tmp = t->tid))
|
| + __timedwait_cp(&t->tid, tmp, 0, 0, 0);
|
| + __pthread_setcancelstate(cs, 0);
|
| + a_barrier();
|
| + if (res)
|
| + *res = t->result;
|
| + if (t->map_base)
|
| + __munmap(t->map_base, t->map_size);
|
| + return 0;
|
| }
|
|
|
| weak_alias(__pthread_join, pthread_join);
|
|
|