interruptible专题

wait_event_interruptible和wake_up_interruptible

wait_event_interruptible和wake_up_interruptible这两个是内核定义的宏 原型: wait_event_interruptible(wq, condition) wake_up_interruptible(x) wq:等待队列,当后面的条件不成立则进程进入休眠 condition:判断条件 ,0或非0值 x: 等待队列,要唤醒的等待队列,

关于函数wait_event_interruptible(wq, condition)

wait_event_interruptible(wq, condition),该函数修改task的状态为TASK_INTERRUPTIBLE,意味着该进程将不会继续运行直到被唤醒,然后被添加到等待队列wq中。 在wait_event_interruptible()中首先判断condition是不是已经满足,如果条件满足则直接返回0,否则调用__wait_event_interruptible(

wait_event_interruptible说明

该函数用于在条件成立的情况下等待事件。具体代码如下所示: #define wait_event_interruptible(wq, condition) \({ \int __ret = 0; \if (!(condition)) \__wait_event_interruptible(wq, condition, __ret); \__ret;

内核等待队列 --- wait_queue_head --- wait_event_interruptible

链接:https://blog.csdn.net/yikai2009/article/details/8653578 等待队列: 在 Linux 驱动程序设计中,可以使用等待队列来实现进程的阻塞.等待队列可以看作保存进程的容器,在阻塞进程时,将进程放入等待队列;当唤醒进程时,从等待队列中取出进程. 等待队列的 定义 和 初始化 wait_queue_head_t DECLARE