相信自己,只有不想做的,没有做不到的。
分类: LINUX
2013-12-12 12:57:00
//自旋锁
1,定义
spinlock_t lock;
int flag = 1;
2,初始化锁
spin_lock_init(&lock);
3,加锁解锁
static int hello_open (struct inode *inode, struct file *file)
{
//枷锁
spin_lock(&lock);
if(flag == 1)
{
flag--;
//解锁
spin_unlock(&lock);
return 0;
}
else
{
//解锁
spin_unlock(&lock);
return -EBUSY;
}
}
static int hello_release (struct inode *inode, struct file *file)
{
//枷锁
spin_lock(&lock);
flag++;
//解锁
spin_unlock(&lock);
}