diff options
Diffstat (limited to 'nptl')
-rw-r--r-- | nptl/nptl_setxid.c | 2 | ||||
-rw-r--r-- | nptl/pthread_create.c | 2 |
2 files changed, 2 insertions, 2 deletions
diff --git a/nptl/nptl_setxid.c b/nptl/nptl_setxid.c index aa863c7ea8..e709822b9b 100644 --- a/nptl/nptl_setxid.c +++ b/nptl/nptl_setxid.c @@ -88,7 +88,7 @@ __nptl_setxid_sighandler (int sig, siginfo_t *si, void *ctx) self->setxid_futex = 1; futex_wake (&self->setxid_futex, 1, FUTEX_PRIVATE); - if (atomic_decrement_val (&xidcmd->cntr) == 0) + if (atomic_fetch_add_relaxed (&xidcmd->cntr, -1) == 1) futex_wake ((unsigned int *) &xidcmd->cntr, 1, FUTEX_PRIVATE); } libc_hidden_def (__nptl_setxid_sighandler) diff --git a/nptl/pthread_create.c b/nptl/pthread_create.c index 308db65cd4..e7e4ede6b2 100644 --- a/nptl/pthread_create.c +++ b/nptl/pthread_create.c @@ -861,7 +861,7 @@ __pthread_create_2_1 (pthread_t *newthread, const pthread_attr_t *attr, NOTES above). */ /* Oops, we lied for a second. */ - atomic_decrement (&__nptl_nthreads); + atomic_fetch_add_relaxed (&__nptl_nthreads, -1); /* Free the resources. */ __nptl_deallocate_stack (pd); |