From 9682a871893ca51c048ef88d95e4bd114af5c59c Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Mon, 24 Apr 2000 05:33:59 +0000 Subject: [PATCH] Update. 2000-04-24 Mark Kettenis * join.c (pthread_exit): Set p_terminated after reporting the termination event instead of before. --- linuxthreads/ChangeLog | 5 +++++ linuxthreads/join.c | 4 ++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/linuxthreads/ChangeLog b/linuxthreads/ChangeLog index d78b0e7..304b2fd 100644 --- a/linuxthreads/ChangeLog +++ b/linuxthreads/ChangeLog @@ -1,3 +1,8 @@ +2000-04-24 Mark Kettenis + + * join.c (pthread_exit): Set p_terminated after reporting the + termination event instead of before. + 2000-04-20 Jakub Jelinek * sysdeps/pthread/bits/libc-lock.h: Only declare __pthread_rwlock_* 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)); -- 2.7.4