diff options
Diffstat (limited to 'nptl/nptl_free_tcb.c')
-rw-r--r-- | nptl/nptl_free_tcb.c | 3 |
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) |