【问题标题】:Is there any functions similar to down_interruptible() for mutexes in kernel development?内核开发中是否有类似于 down_interruptible() 的函数用于互斥锁?
【发布时间】:2015-01-15 05:05:25
【问题描述】:

Linux device drivers 3rd edition一书中,互斥锁是由信号量通过init_MUTEX(sem) 实现的。然而,较新的内核,例如内核 3.2.X,已经删除了该功能并添加了对互斥体的支持。

但是当我遇到代码时:

if (down_interruptible(&sem))
    return -ERESTARTSYS;

我无法确定是否存在与此方法对应的互斥锁。换句话说,如何中断对特定互斥体的等待?

【问题讨论】:

    标签: linux linux-kernel linux-device-driver mutex semaphore


    【解决方案1】:

    我无法确定是否存在与此方法对应的互斥锁。换句话说,我怎样才能中断对特定互斥体的等待?

    是的,互斥锁是悲观锁,它取代了较新内核中的信号量。如果您想使用互斥锁获取可中断锁,请使用:

    lock_interruptable()  
    

    参考头文件:

    #include <linux/mutex.h>
    

    【讨论】:

      猜你喜欢
      • 2013-06-15
      • 1970-01-01
      • 2020-06-17
      • 1970-01-01
      • 2015-05-25
      • 1970-01-01
      • 2021-03-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多