about summary refs log tree commit diff
path: root/nptl/nptl_free_tcb.c
diff options
context:
space:
mode:
Diffstat (limited to 'nptl/nptl_free_tcb.c')
-rw-r--r--nptl/nptl_free_tcb.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/nptl/nptl_free_tcb.c b/nptl/nptl_free_tcb.c
index 0d31143ac8..86a8904898 100644
--- a/nptl/nptl_free_tcb.c
+++ b/nptl/nptl_free_tcb.c
@@ -24,7 +24,8 @@ void
 __nptl_free_tcb (struct pthread *pd)
 {
   /* The thread is exiting now.  */
-  if (atomic_bit_test_set (&pd->cancelhandling, TERMINATED_BIT) == 0)
+  if ((atomic_fetch_or_relaxed (&pd->cancelhandling, TERMINATED_BITMASK)
+      & TERMINATED_BITMASK) == 0)
     {
       /* Free TPP data.  */
       if (pd->tpp != NULL)