提交 50e26f09 编写于 作者: R Rich Felker

reorganize thread exit code, make pthread_exit call cancellation handlers

上级 f38c154b
#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);
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册