reorganize thread exit code, make pthread_exit call cancellation handlers
authorRich Felker <dalias@aerifal.cx>
Mon, 14 Feb 2011 00:50:47 +0000 (19:50 -0500)
committerRich Felker <dalias@aerifal.cx>
Mon, 14 Feb 2011 00:50:47 +0000 (19:50 -0500)
src/thread/pthread_exit.c [deleted file]

diff --git a/src/thread/pthread_exit.c b/src/thread/pthread_exit.c
deleted file mode 100644 (file)
index 4966e23..0000000
+++ /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);
-}