Define THREAD_ATOMIC_CMPXCHG_VAL and THREAD_ATOMIC_BIT_SET if not already defined.
authorUlrich Drepper <drepper@redhat.com>
Sat, 5 Apr 2003 05:08:05 +0000 (05:08 +0000)
committerUlrich Drepper <drepper@redhat.com>
Sat, 5 Apr 2003 05:08:05 +0000 (05:08 +0000)
nptl/pthreadP.h

index 725c87d..db345d5 100644 (file)
@@ -131,6 +131,18 @@ extern int __pthread_debug attribute_hidden;
 #define SIGTIMER       (__SIGRTMIN + 1)
 
 
+/* Atomic operations on TLS memory.  */
+#ifndef THREAD_ATOMIC_CMPXCHG_VAL
+# define THREAD_ATOMIC_CMPXCHG_VAL(descr, member, new, old) \
+  atomic_compare_and_exchange_val_acq (&(descr)->member, new, old)
+#endif
+
+#ifndef THREAD_ATOMIC_BIT_SET
+# define THREAD_ATOMIC_BIT_SET(descr, member, bit) \
+  atomic_bit_set (&(descr)->member, bit)
+#endif
+
+
 /* This function is responsible for calling all registered cleanup
    handlers and then terminate the thread.  This includes dellocating
    the thread-specific data.  The implementation is complicated by the
@@ -151,7 +163,7 @@ __do_cancel (void)
   struct pthread *self = THREAD_SELF;
 
   /* Make sure we get no more cancellations.  */
-  atomic_bit_set (&self->cancelhandling, EXITING_BIT);
+  THREAD_ATOMIC_BIT_SET (self, cancelhandling, EXITING_BIT);
 
   /* Throw an exception.  */
   // XXX TBI