Mercurial > libjeffpc
changeset 698:6a94380509f8
atomic: document (lightly) what each macro returns
Signed-off-by: Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
author | Josef 'Jeff' Sipek <jeffpc@josefsipek.net> |
---|---|
date | Sun, 17 Mar 2019 09:56:34 -0400 |
parents | 07966e8f9ed3 |
children | 67a81f305a11 |
files | include/jeffpc/atomic.h |
diffstat | 1 files changed, 4 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/include/jeffpc/atomic.h Sun Mar 17 09:56:12 2019 -0400 +++ b/include/jeffpc/atomic.h Sun Mar 17 09:56:34 2019 -0400 @@ -42,10 +42,14 @@ #define atomic_set(var, val) ((var)->v = (val)) #define atomic_read(var) ((var)->v) + +/* The following return the new (modified) value. */ #define atomic_add(var, val) __sync_add_and_fetch(&(var)->v, (val)) #define atomic_sub(var, val) __sync_sub_and_fetch(&(var)->v, (val)) #define atomic_inc(var) atomic_add((var), 1) #define atomic_dec(var) atomic_sub((var), 1) + +/* The following return the 'after' value. If == new, then a swap occured. */ #define atomic_cas(var, old, new) \ __sync_val_compare_and_swap(&(var)->v, (old), (new)) #define atomic_cas_ptr(var, old, new) \