wait_event()和wait_event_interruptible()的介绍
Posted 代码改变世界ctw
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了wait_event()和wait_event_interruptible()的介绍相关的知识,希望对你有一定的参考价值。
我们先写下该函数的含义:先判断一下condition条件,如果条件不成立,则将当前进程挂在等待队列中,如果条件成立,则唤醒等待队列.
在kernel-4.14/include/linux/wait.h中,有着大量的wait_event类的API函数,
然后我们挑选出一个常用的来介绍:
wait_event(wq_head, condition)
- condition = 0 ///cpu继续休眠,其实就是将cpu schedule()出去,当前进程挂在等待队列中
- condition = 1 ///唤醒工作队列
接着我们对上述的sub name进行介绍:
- _timeout: 如果带了_timeout,那么在检查condition条件时,如果不成立,则会等待timeout时间后,再检查一次.
- _interruptible : 此时cpu已经schedule()出去,这时来个系统级的中断,是可以唤醒这个等待队列的
下面我们选取wait_event_interruptible()和wait_event_interruptible_timeout()来介绍其实现原理:
以上是关于wait_event()和wait_event_interruptible()的介绍的主要内容,如果未能解决你的问题,请参考以下文章