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);
posted @ 2012-08-03 09:30  软件小书童  阅读(1500)  评论(0)    收藏  举报