diff --git a/src/include/atomic.h b/src/include/atomic.h index c1650bef51a..960123e6e36 100644 --- a/src/include/atomic.h +++ b/src/include/atomic.h @@ -100,12 +100,12 @@ namespace ceph { AO_t dec() { return AO_fetch_and_sub1_write(&val) - 1; } - void add(AO_t add_me) { - AO_fetch_and_add(&val, add_me); + AO_t add(AO_t add_me) { + return AO_fetch_and_add(&val, add_me) + add_me; } - void sub(AO_t sub_me) { + AO_t sub(AO_t sub_me) { AO_t negsub = 0 - sub_me; - AO_fetch_and_add_write(&val, (AO_t)negsub); + return AO_fetch_and_add_write(&val, negsub) + negsub; } AO_t read() const { // cast away const on the pointer. this is only needed to build