如果进程在持有互斥锁的情况下休眠会怎样?例如,如果我有以下代码:
mutex_lock(mtx);
wait_event_unterruptible_timeout(wait_queue_head, condition, timeout);
//some other code
mutex_unlock(mtx);
睡眠时释放互斥锁并在进程唤醒之前重新获取?或者该过程是否在睡觉时持有互斥锁?
谢谢
答案 0 :(得分:6)
保持互斥锁。
它说明它在锡上做了什么。
答案 1 :(得分:4)
睡觉时不会释放互斥锁。
在Linux内核中,您可以在持有互斥锁或rw_semaphore时进入睡眠状态。另一方面,你拿着自旋锁或rwlocks时无法入睡