内核开发中是否有类似down_interruptible()的互斥函数?
Is there any functions similar to down_interruptible() for mutexes in kernel development?
在书Linux设备驱动程序第3版中,互斥锁是通过信号量通过init_MUTEX(sem)
实现的。较新的内核,如内核3.2.X,已经去掉了这个功能,增加了mutex的支持
但是当我遇到代码时:
if (down_interruptible(&sem))
return -ERESTARTSYS;
我无法确定是否有与此方法对应的互斥锁。换句话说,我怎样才能中断对特定互斥锁的等待?
I can't ensure that whether there is a counterpart of this method for mutex. In other words, how can I interrupt the waiting on particular mutex?
是的,互斥量是悲观锁,它在较新的内核中取代了信号量。如果你想使用互斥锁获取可中断锁,请使用:
lock_interruptable()
参考头文件:
#include <linux/mutex.h>
在书Linux设备驱动程序第3版中,互斥锁是通过信号量通过init_MUTEX(sem)
实现的。较新的内核,如内核3.2.X,已经去掉了这个功能,增加了mutex的支持
但是当我遇到代码时:
if (down_interruptible(&sem))
return -ERESTARTSYS;
我无法确定是否有与此方法对应的互斥锁。换句话说,我怎样才能中断对特定互斥锁的等待?
I can't ensure that whether there is a counterpart of this method for mutex. In other words, how can I interrupt the waiting on particular mutex?
是的,互斥量是悲观锁,它在较新的内核中取代了信号量。如果你想使用互斥锁获取可中断锁,请使用:
lock_interruptable()
参考头文件:
#include <linux/mutex.h>