原子变量
定义如下:
typedef struct {
int counter;
} atomic_t;
初始化:
atomic_t v = ATOMIC_INIT(0);/*定义原子变量 v 并初始化为 0*/
API操作:
void atomic_set(atomic_t *v, int i);/*设置原子变量的值为 i*/
int atomic_read(atomic_t *v);/*返回原子变量的值 */
void atomic_add(int i, atomic_t *v);/*原子变量增加 i*/
void atomic_sub(int i, atomic_t *v);/*原子变量减少 i*/
void atomic_inc(atomic_t *v);/*原子变量增加1*/
void atomic_dec(atomic_t *v);/*原子变量减少1*/
int atomic_inc_and_test(atomic_t *v);
int