在《Linux设备驱动程序第三版》一书中,互斥锁是通过init_MUTEX(sem)
通过信号量实现的。但是,较新的内核,如kernel 3.2.x,已经删除了这个函数并添加了互斥的支持。
但当我遇到密码时:
if (down_interruptible(&sem))
return -ERESTARTSYS;
我无法确定互斥体是否有此方法的对应项。换句话说,我怎样才能中断对特定互斥的等待?
最佳答案
我无法确定互斥体是否有此方法的对应项。换句话说,我怎样才能中断对特定互斥的等待?
是的,互斥锁是悲观锁,它取代了新内核中的信号量。如果要使用互斥锁获取可中断锁,请使用:
lock_interruptable()
引用头文件:
#include <linux/mutex.h>
关于linux - 内核开发中是否有类似于down_interruptible()的互斥函数?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27957122/