The typo in atomic_add_return() incurs tricky bugs. For example, the current atomic_dec_return() is indeed an atomic_add_return(). A similar typo appears in the function atomic_add_negative(). Signed-off-by: Junchang Wang <junchang2020@xxxxxxxxx> --- CodeSamples/api-pthreads/api-gcc.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CodeSamples/api-pthreads/api-gcc.h b/CodeSamples/api-pthreads/api-gcc.h index fbbedf2..9ad8a68 100644 --- a/CodeSamples/api-pthreads/api-gcc.h +++ b/CodeSamples/api-pthreads/api-gcc.h @@ -140,7 +140,7 @@ static __inline__ int atomic_inc_and_test(atomic_t *v) */ static __inline__ int atomic_add_negative(int i, atomic_t *v) { - return __atomic_add_fetch(&v->counter, 1, __ATOMIC_SEQ_CST) < 0; + return __atomic_add_fetch(&v->counter, i, __ATOMIC_SEQ_CST) < 0; } /** @@ -152,7 +152,7 @@ static __inline__ int atomic_add_negative(int i, atomic_t *v) */ static __inline__ int atomic_add_return(int i, atomic_t *v) { - return __atomic_add_fetch(&v->counter, 1, __ATOMIC_SEQ_CST); + return __atomic_add_fetch(&v->counter, i, __ATOMIC_SEQ_CST); } static __inline__ int atomic_sub_return(int i, atomic_t *v) -- 2.7.4