Linux内核中的原子操作 atomic_t 解析
原型:
1 typedef struct {
2 3 volatile int counter; 4 5 } atomic_t;
1 声明
定义并初始化原子变量
1 atomic_t isopen = ATOMIC_INIT(1);
2 使用
原子变量自减1,并测试是否为0,如果为0,返回true,否则返回false
1 if( !atomic_dec_and_test(&isopen) ) { 2 atomic_inc(&isopen); //加1操作 3 return -EBUSY; 4 }
3 释放
减1操作
1 atomic_dec(&isopen);
浙公网安备 33010602011771号