在 Linux设备驱动程序第3版一书中,互斥锁由信号量通过init_MUTEX(sem)
实现。然而,较新的内核(如内核3.2.X)已删除此功能并添加了互斥锁的支持。
但是当我遇到代码时:
if (down_interruptible(&sem))
return -ERESTARTSYS;
我无法确保是否存在此方法的副本用于互斥锁。换句话说,如何中断特定互斥锁的等待?
答案 0 :(得分:1)
我无法确保此方法是否与互斥锁相对应。换句话说,如何中断特定互斥锁的等待?
是的,互斥锁是悲观锁,它取代了较新内核中的信号量。如果要使用互斥锁进行可插入锁定,请使用:
lock_interruptable()
参考头文件:
#include <linux/mutex.h>