From b1972e47c0359b818522f6aa822f3457be938060 Mon Sep 17 00:00:00 2001 From: rpj Date: Fri, 13 Aug 1999 16:17:01 +0000 Subject: 1999-08-14 Ross Johnson * exit.c (pthread_exit): Don't call pthread_self() but get thread handle directly for efficiency. --- exit.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'exit.c') diff --git a/exit.c b/exit.c index 5035718..18592a2 100644 --- a/exit.c +++ b/exit.c @@ -51,7 +51,7 @@ pthread_exit (void *value_ptr) * ------------------------------------------------------ */ { - pthread_t self = pthread_self(); + pthread_t self; /* If the current thread is implicit it was not started through pthread_create(), therefore we cleanup and end the thread @@ -60,7 +60,9 @@ pthread_exit (void *value_ptr) which will cleanup and end the thread for us. */ - if (self->implicit) + self = (pthread_t) pthread_getspecific (_pthread_selfThreadKey); + + if (self == NULL || self->implicit) { _pthread_callUserDestroyRoutines(self); -- cgit v1.2.3