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. --- ChangeLog | 5 +++++ exit.c | 6 ++++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index 76c866c..4655fc0 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +1999-08-14 Ross Johnson + + * exit.c (pthread_exit): Don't call pthread_self() but + get thread handle directly for efficiency. + 1999-08-12 Ross Johnson * private.c (_pthread_threadStart): ei[] only declared if _MSC_VER. 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