2005-12-21 Roland McGrath <roland@redhat.com>
[kopensolaris-gnu/glibc.git] / nptl / pthread_timedjoin.c
index dd51fea..5df6ab6 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002, 2003 Free Software Foundation, Inc.
+/* Copyright (C) 2002, 2003, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
 
@@ -19,8 +19,7 @@
 
 #include <errno.h>
 #include <stdlib.h>
-
-#include "atomic.h"
+#include <atomic.h>
 #include "pthreadP.h"
 
 
@@ -42,7 +41,7 @@ pthread_timedjoin_np (threadid, thread_return, abstime)
   int result;
 
   /* Make sure the descriptor is valid.  */
-  if (DEBUGGING_P && __find_in_stack_list (pd) == NULL)
+  if (INVALID_NOT_TERMINATED_TD_P (pd))
     /* Not a valid thread handle.  */
     return ESRCH;
 
@@ -64,8 +63,8 @@ pthread_timedjoin_np (threadid, thread_return, abstime)
 
   /* Wait for the thread to finish.  If it is already locked something
      is wrong.  There can only be one waiter.  */
-  if (__builtin_expect (atomic_compare_and_exchange_acq (&pd->joinid, self,
-                                                        NULL) != 0, 0))
+  if (__builtin_expect (atomic_compare_and_exchange_bool_acq (&pd->joinid,
+                                                             self, NULL), 0))
     /* There is already somebody waiting for the thread.  */
     return EINVAL;