原子操作
本帖最后由 linux_xiong 于 2011-03-23 10:38 编辑
static atomic_t xxx_available = ATOMIC_INIT(1);
static int xxx_open(struct inode *inode,struct file *filp)
{
...
if(!atomic_dec_and_test(&xxx_available)){ //这里的测试原子会减吗?
atomic_inc(&xxx_available); //如果减了这里又加了
return - EBUSY;
}
static int xxx_release(struct inode *inode,struct file *filp)
{
atomic_inc(&xxx_available); //这里又加了
return 0;
}
新手求解
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
回复 1# linux_xiong
复制代码上面是这个函数在x86结构中的实现。
会