Update.
authorUlrich Drepper <drepper@redhat.com>
Fri, 16 May 2003 22:09:32 +0000 (22:09 +0000)
committerUlrich Drepper <drepper@redhat.com>
Fri, 16 May 2003 22:09:32 +0000 (22:09 +0000)
* pthread_join.c (pthread_join): Set tid field of the joined
thread to -1.  This isn't necessary but helps to recognize some
error conditions with almost no cost.

* allocatestack.c (FREE_P): Also negative values indicate an
unused stack.

nptl/ChangeLog
nptl/allocatestack.c
nptl/pthread_join.c

index e63c71c..60b03f7 100644 (file)
@@ -1,5 +1,12 @@
 2003-05-16  Ulrich Drepper  <drepper@redhat.com>
 
+       * pthread_join.c (pthread_join): Set tid field of the joined
+       thread to -1.  This isn't necessary but helps to recognize some
+       error conditions with almost no cost.
+
+       * allocatestack.c (FREE_P): Also negative values indicate an
+       unused stack.
+
        * unwind.c: Include <unistd.h>.
 
 2003-05-14  Ulrich Drepper  <drepper@redhat.com>
index 95ee992..9653b62 100644 (file)
@@ -111,7 +111,7 @@ static unsigned int nptl_ncreated;
 
 
 /* Check whether the stack is still used or not.  */
-#define FREE_P(descr) ((descr)->tid == 0)
+#define FREE_P(descr) ((descr)->tid <= 0)
 
 
 /* We create a double linked list of all cache entries.  Double linked
index f77c2c9..f94128d 100644 (file)
@@ -93,6 +93,9 @@ pthread_join (threadid, thread_return)
   pthread_cleanup_pop (0);
 
 
+  /* We mark the thread as terminated and as joined.  */
+  pd->tid = -1;
+
   /* Store the return value if the caller is interested.  */
   if (thread_return != NULL)
     *thread_return = pd->result;