about summary refs log tree commit diff
path: root/src/thread
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/thread
parentf38c154be257835d6d5112c2f92c4a4c8bed91cc (diff)
downloadmusl-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.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);
-}