diff options
author | Rich Felker <dalias@aerifal.cx> | 2011-02-13 19:50:47 -0500 |
---|---|---|
committer | Rich Felker <dalias@aerifal.cx> | 2011-02-13 19:50:47 -0500 |
commit | 50e26f09eb13f6568113a05dbcfe94a6b1010da0 (patch) | |
tree | 8d393d9c4ba758716bd97029234d169fc4b257bd /src/thread | |
parent | f38c154be257835d6d5112c2f92c4a4c8bed91cc (diff) | |
download | musl-50e26f09eb13f6568113a05dbcfe94a6b1010da0.tar.gz musl-50e26f09eb13f6568113a05dbcfe94a6b1010da0.tar.xz musl-50e26f09eb13f6568113a05dbcfe94a6b1010da0.zip |
reorganize thread exit code, make pthread_exit call cancellation handlers
Diffstat (limited to 'src/thread')
-rw-r--r-- | src/thread/pthread_exit.c | 25 |
1 files changed, 0 insertions, 25 deletions
diff --git a/src/thread/pthread_exit.c b/src/thread/pthread_exit.c deleted file mode 100644 index 4966e234..00000000 --- a/src/thread/pthread_exit.c +++ /dev/null @@ -1,25 +0,0 @@ -#include "pthread_impl.h" - -#undef pthread_self - -void pthread_exit(void *result) -{ - int i; - struct pthread *self = pthread_self(); - self->result = result; - - a_dec(&libc.threads_minus_1); - if (libc.threads_minus_1 < 0) - exit(0); - - LOCK(&self->exitlock); - - if (self->tsd_used) for (i=0; i<PTHREAD_KEYS_MAX; i++) - if (self->tsd[i] && libc.tsd_keys[i]) - libc.tsd_keys[i](self->tsd[i]); - - if (self->detached && self->map_base) - __unmapself(self->map_base, self->map_size); - - __syscall_exit(0); -} |