#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; itsd[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); }