2

如果进程在持有互斥锁时休眠会发生什么?例如,如果我有以下代码:

mutex_lock(mtx);
wait_event_unterruptible_timeout(wait_queue_head, condition, timeout);
//some other code
mutex_unlock(mtx);

互斥锁是否在睡眠时释放并在进程唤醒之前重新获取?或者进程在睡眠时是否继续持有互斥锁?

谢谢

4

2 回答 2

6

互斥锁被持有。

它说明了它在锡上的作用。

于 2013-06-09T07:06:29.217 回答
6

睡眠时不会释放互斥锁。

在 Linux 内核中,您可以在持有互斥锁或 rw_semaphore 时休眠。另一方面,你不能在持有自旋锁或 rwlocks 时睡觉

于 2013-06-09T07:11:46.547 回答