Presentation is loading. Please wait.

Presentation is loading. Please wait.

阻塞操作. 在 linux 里,一个等待队列由一个 wait_queue_head_t 类型的结构来描述 等待队列的初始化: static wait_queue_head_t testqueue; init_waitqueue_head(&testqueue);

Similar presentations


Presentation on theme: "阻塞操作. 在 linux 里,一个等待队列由一个 wait_queue_head_t 类型的结构来描述 等待队列的初始化: static wait_queue_head_t testqueue; init_waitqueue_head(&testqueue);"— Presentation transcript:

1 阻塞操作

2 在 linux 里,一个等待队列由一个 wait_queue_head_t 类型的结构来描述 等待队列的初始化: static wait_queue_head_t testqueue; init_waitqueue_head(&testqueue);

3 queue: wait_queue_head_t 类型的变量,表示要等待的队列头 condition: 条件判断 timeout: 超时时限 调用以上函数的进程会把它自己添加到 queue 队列上,然 后睡眠直到 condition 为 1

4 返回值 : 对于 wait_event_interruptible, 返回 0 表示请求的条件得到满足 (condition 变为 1), 返回非 0 值表示被信号打断。 对于 wait_event_interruptible_timeout 的返回值则比较复杂 : 返回值 <0, 表示被信号打断 返回值 >0, 表示条件得到满足 (condition 变为 1), 且时间还有剩余,返回值 表示剩余的时间片 返回值 =0 ,表示超时,假如返回值为 0 ,应该检测 condition 的值是否为 1

5 queue : wait_queue_head_t 类型的指针,表示队列头 wake_up 唤醒所有在给定等待队列的进程; wake_up_interruptible 唤醒所有在给定队列上的 可中断的进程;


Download ppt "阻塞操作. 在 linux 里,一个等待队列由一个 wait_queue_head_t 类型的结构来描述 等待队列的初始化: static wait_queue_head_t testqueue; init_waitqueue_head(&testqueue);"

Similar presentations


Ads by Google