函数原型:wait_event_interruptible_timeout(wq,condition, timeout)*函数作用:~睡眠~,直到condition为真,或timeout超时;*@wq: 要等待的等待队列*@condition: 等待事件发生的条件(一个C表达式 )*@timeout: 超时时间 程序是用来睡眠的(TASK_INTERRUPTIBLE状态下),直到@condition为真,或者收到一个信号。 每次等待队...
})wait_event_interruptible()--> __wait_event_interruptible() __wait_event_interruptible()首先定义并初始化一个wait_queue_t变量__wait,其中数据为当前进程current,并把__wait入队。在无限循环中,__wait_event_interruptible()将本进程置为可中断的挂起状态,反复检查condition是否成立,如果成立 则退出,如果不...
__wait_event_interruptible(wq, condition, __ret); \ __ret; \ }) 1. 2. 3. 4. 5. 6. 7. 显然,只有条件conidtion不成立的情况下才会进入实际的事件等待。 之后将调用函数__wait_event_interruptible,该函数宏定义,其源代码如下所示: #define __wait_event_interruptible(wq, condition, ret) \ ...
当函数中调用wait_event_interruptible后,如果条件不成立,就会一直卡在这里。不会往下执行。反复检查condition是否成立,如果成立则退出,如果不成立则继续休眠;条件满足后,即把本进程运行状态置为运行态(此时如果不执行下面的函数 wake_up_interruptible,上面wait_event_interruptible还会继续休眠)...
wait_event系列函数(作用:等待事件,置于休眠。区别从字面意思即可看出): wait_event(queue, conditon); wait_event_interruptible(queue, condition); wait_event_timeout(queue, condition, timeout); wait_event_interruptible_timeout(queue, condition, timeout); ...
wait_event_interruptible(wq, condition) wake_up_interruptible(x) wq:等待队列,当后面的条件不成立则进程进入休眠 condition:判断条件 ,0或非0值 x: 等待队列,要唤醒的等待队列,即唤醒对应的进程 当函数中调用wait_event_interruptible后,如果条件不成立,就会一直卡在这里。不会往下执行。反复检查condition是否成立...