atomic_add_and_test
#define atomic_add_and_test(i, v) (atomic_add_return((i), (v)) == 0)
#define atomic_add_and_test(v, p) (atomic_add_return(v, p) == 0)