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)	\