Еще один вопрос новичка:
В следующем коде, что делать, если поток прерывается после вызова set_current_state, но перед вызовом schedule.Когда код снова запланирован, он начинается с вызова «schedule» и удаляется из очереди выполнения?Или вызов «schedule» на этот раз игнорируется и начинается с оператора set_current_state (TASK_RUNNING)?
{
...
set_current_state(TASK_INTERRUPTIBLE); /* suppose thread is preempted just after this function call */
schedule();
set_current_state(TASK_RUNNING);
...
}