|
|
@ -606,10 +606,8 @@ void Scheduler::SwitchContextStep2() {
|
|
|
|
auto& cpu_core = system.ArmInterface(core_id);
|
|
|
|
auto& cpu_core = system.ArmInterface(core_id);
|
|
|
|
new_thread->context_guard.lock();
|
|
|
|
new_thread->context_guard.lock();
|
|
|
|
cpu_core.Lock();
|
|
|
|
cpu_core.Lock();
|
|
|
|
ASSERT_MSG(new_thread->GetProcessorID() == s32(this->core_id),
|
|
|
|
ASSERT_MSG(new_thread->GetSchedulingStatus() == ThreadSchedStatus::Runnable,
|
|
|
|
"Thread must be assigned to this core.");
|
|
|
|
"Thread must be runnable.");
|
|
|
|
ASSERT_MSG(new_thread->GetStatus() == ThreadStatus::Ready,
|
|
|
|
|
|
|
|
"Thread must be ready to become running.");
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Cancel any outstanding wakeup events for this thread
|
|
|
|
// Cancel any outstanding wakeup events for this thread
|
|
|
|
new_thread->SetIsRunning(true);
|
|
|
|
new_thread->SetIsRunning(true);
|
|
|
|