Update.
authorUlrich Drepper <drepper@redhat.com>
Mon, 24 Apr 2000 05:33:59 +0000 (05:33 +0000)
committerUlrich Drepper <drepper@redhat.com>
Mon, 24 Apr 2000 05:33:59 +0000 (05:33 +0000)
2000-04-24  Mark Kettenis  <kettenis@gnu.org>

* join.c (pthread_exit): Set p_terminated after reporting the
termination event instead of before.

linuxthreads/ChangeLog
linuxthreads/join.c

index d78b0e7..304b2fd 100644 (file)
@@ -1,3 +1,8 @@
+2000-04-24  Mark Kettenis  <kettenis@gnu.org>
+
+       * join.c (pthread_exit): Set p_terminated after reporting the
+       termination event instead of before.
+
 2000-04-20  Jakub Jelinek  <jakub@redhat.com>
 
        * sysdeps/pthread/bits/libc-lock.h: Only declare __pthread_rwlock_*
index b703c0d..5a97b17 100644 (file)
@@ -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));