reorganize thread exit code, make pthread_exit call cancellation handlers

This commit is contained in:
Rich Felker 2011-02-13 19:50:47 -05:00
parent f38c154be2
commit 50e26f09eb
1 changed files with 0 additions and 25 deletions

View File

@ -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);
}