在Linux中奇怪的开关

我有一些关于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: ; } 

EDITED

我把它从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().