我有一些关于Linux Kernel中的下面的开关的问题,有人可以解释一下最后case
,为什么我需要这种情况,如果它是空的? 提前致谢
switch (prev->state) { case TASK_INTERRUPTIBLE: if (unlikely(signal_pending(prev))) { prev->state = TASK_RUNNING; break; } default: deactivate_task(prev, rq); case TASK_RUNNING: ; }
我把它从linux 2.4.18,我目前正在学习,这里没有评论,为什么这样
如果prev->state == TASK_RUNNING
并且没有最后一种情况,那么将会调用deactivate_task
,这在这里大概是不需要的。 这只是为TASK_INTERRUPTIBLE
做一些特殊的事情的快捷方式,而对于其他任何状态, TASK_RUNNING
都是不同的。
以下是他们在那里做的事情:
If prev->state == TASK_RUNNING -> do nothing. If prev->state == TASK_INTERRUPTIBLE - > signal_pending() and then possibly deactivate_task() In any other case just deactivate_task().