summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorRich Felker <dalias@aerifal.cx>2011-02-13 19:50:47 -0500
committerRich Felker <dalias@aerifal.cx>2011-02-13 19:50:47 -0500
commit50e26f09eb13f6568113a05dbcfe94a6b1010da0 (patch)
tree8d393d9c4ba758716bd97029234d169fc4b257bd /src
parentf38c154be257835d6d5112c2f92c4a4c8bed91cc (diff)
downloadmusl-50e26f09eb13f6568113a05dbcfe94a6b1010da0.tar.gz
musl-50e26f09eb13f6568113a05dbcfe94a6b1010da0.tar.bz2
musl-50e26f09eb13f6568113a05dbcfe94a6b1010da0.tar.xz
musl-50e26f09eb13f6568113a05dbcfe94a6b1010da0.zip
reorganize thread exit code, make pthread_exit call cancellation handlers
Diffstat (limited to 'src')
-rw-r--r--src/thread/pthread_exit.c25
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);
-}