相关API
1.定义等待队列头
wait_queue_head_t wq_head;
2.void init_waitqueue_head(struct wait_queue_head *wq_head)
功能:用于初始化一个等待队列
参数:
wq_head:等待队列头节点指针
返回值:无
3.wait_event(wq_head, condition)
功能:判断condition的值,如果为真,则不做任何操作,如果为假,将当前进程切换为不可中断休眠状态
参数:
wq_head:等待队列头
condition:判断数据是否准备就绪的标志变量
返回值:无
4.wait_event_interruptible(wq_head, condition)
功能:判断condition的值,如果为真,则不做任何操作,如果为假,将当前进程切换为可中断休眠状态
参数:
wq_head:等待队列头
condition:判断数据是否准备就绪的标志变量
返回值:如果condition为真,返回0,否则返回-ERESTARTSYS
5.void wake_up(struct wait_queue_head *wq_head)
功能:将等待队列中的不可中断的休眠态进程唤醒,当condition为假时调用这个函数将进程唤醒,被唤醒的进程会立即再次切换为休眠状态
参数:
wq_head:等待队列头节点首地址
参数:无
6.void wake_up_interruptible(struct wait_queue_head *wq_head)
功能:将等待队列中的可中断的休眠态进程唤醒,当condition为假时调用这个函数将进程唤醒,被唤醒的进程会立即再次切换为休眠状态
参数:
wq_head:等待队列头节点首地址
参数:无