From 9682a871893ca51c048ef88d95e4bd114af5c59c Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Mon, 24 Apr 2000 05:33:59 +0000 Subject: Update. 2000-04-24 Mark Kettenis * join.c (pthread_exit): Set p_terminated after reporting the termination event instead of before. --- linuxthreads/join.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'linuxthreads/join.c') diff --git a/linuxthreads/join.c b/linuxthreads/join.c index b703c0d..5a97b17 100644 --- a/linuxthreads/join.c +++ b/linuxthreads/join.c @@ -37,8 +37,6 @@ void pthread_exit(void * retval) /* Store return value */ __pthread_lock(THREAD_GETMEM(self, p_lock), self); THREAD_SETMEM(self, p_retval, retval); - /* Say that we've terminated */ - THREAD_SETMEM(self, p_terminated, 1); /* See whether we have to signal the death. */ if (THREAD_GETMEM(self, p_report_events)) { @@ -60,6 +58,8 @@ void pthread_exit(void * retval) __linuxthreads_death_event(); } } + /* Say that we've terminated */ + THREAD_SETMEM(self, p_terminated, 1); /* See if someone is joining on us */ joining = THREAD_GETMEM(self, p_joining); __pthread_spin_unlock(THREAD_GETMEM(self, p_lock)); -- cgit v1.1