diff --git a/src/system/kernel/scheduler/scheduler.cpp b/src/system/kernel/scheduler/scheduler.cpp index 1913e57b35..6a3a7ec91b 100644 --- a/src/system/kernel/scheduler/scheduler.cpp +++ b/src/system/kernel/scheduler/scheduler.cpp @@ -381,8 +381,12 @@ reschedule(int32 nextState) ThreadData* nextThreadData; if (gCPU[thisCPU].disabled) { if (!oldThreadData->IsIdle()) { - putOldThreadAtBack = oldThread->pinned_to_cpu == 0; - oldThreadData->UnassignCore(true); + if (oldThread->pinned_to_cpu == 0) { + putOldThreadAtBack = true; + oldThreadData->UnassignCore(true); + } else { + putOldThreadAtBack = false; + } CPURunQueueLocker cpuLocker(cpu); nextThreadData = cpu->PeekIdleThread();