Funkcja ta w wersji SMP próbuje przydzielić dopiero co wywłaszczonemu procesowi jaki¶ inny procesor (uruchamiaj±c funkcję rechedule_idle()) o ile wywłaszczony proces nie był procesem typu idle i o ile dalej jest w stanie TASK_RUNNING oraz nie ma ustawionej flagi SCHED_YIELD.
if (prev->state == TASK_RUNNING) { if ((prev == idle_task(smp_processor_id())) || (policy & SCHED_YIELD)) goto out_unlock; /* Koniec spin_lock_irqsave(&runqueue_lock, flags); if ((prev->state == TASK_RUNNING) && !prev->has_cpu) reschedule_idle(prev); spin_unlock_irqrestore(&runqueue_lock, flags); ... }