
Linux wait queue
剥丝机器人
这个作者很懒,什么都没留下…
展开
-
睡眠--TASK_INTERRUPTIBLE and TASK_UNINTERRUPTIBLE
睡眠--TASK_INTERRUPTIBLE and TASK_UNINTERRUPTIBLE Two states are associated with sleeping, TASK_INTERRUPTIBLE and TASK_UNINTERRUPTIBLE. They differ only in that tasks in the TASK_UNINTERRUPTIBLE state i...转载 2018-06-25 09:35:48 · 404 阅读 · 0 评论 -
TASK_INTERRUPTIBLE 和TASK_UNINTERRUPTIBLE 的区别
TASK_INTERRUPTIBLE是可以被信号和wake_up()唤醒的,当信号到来时,进程会被设置为可运行。而TASK_UNINTERRUPTIBLE只能被wake_up()唤醒。信号本质信号是在软件层次上对中断机制的一种模拟,软中断信号来源信号事件的发生有两个来源:硬件来源:(比如我们按下了键盘或者其它硬件故障);软件来源:最常用发送信号的系统函数是kill, raise, alarm和se...转载 2018-06-25 10:04:09 · 1667 阅读 · 0 评论 -
wait_event族函数浅析
周末闲暇无事,聊聊内核中的wait_event*类函数的具体实现,等待事件必定涉及到某个条件,而这些函数的区别主要是等待后唤醒的方式……直奔主题,上源码wait_event_interruptible#define wait_event_interruptible(wq, condition) \({ ...转载 2018-06-25 10:05:01 · 2740 阅读 · 0 评论 -
signal_pending函数解析
经常我们在睡眠的代码中 会看到这样的例子: if (signal_pending(current)) { ret = -ERESTARTSYS; return ret; } 关于 -ERESTARTSYS 到底是什么意思? -ERESTARTSYS表示信号函数处理完毕后重新执行信号函数前的某个系统调用.也就是说,如果信号函数前有发生系统调用,在调度用户...转载 2018-06-25 10:14:06 · 1731 阅读 · 0 评论