From 684d5eed1939a54c97f2f983a4a65d5da5764c19 Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Sun, 30 Jan 2022 14:04:46 +0100 Subject: [PATCH] Kernel: VERIFY that Scheduler::context_switch() always has a from-thread We always context_switch() from somewhere, so there's no need to handle the case where from_thread is null. --- Kernel/Scheduler.cpp | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/Kernel/Scheduler.cpp b/Kernel/Scheduler.cpp index 3eb18cc2ae..35d3aca36c 100644 --- a/Kernel/Scheduler.cpp +++ b/Kernel/Scheduler.cpp @@ -276,23 +276,23 @@ bool Scheduler::context_switch(Thread* thread) thread->did_schedule(); auto* from_thread = Thread::current(); + VERIFY(from_thread); + if (from_thread == thread) return false; - if (from_thread) { - // If the last process hasn't blocked (still marked as running), - // mark it as runnable for the next round. - if (from_thread->state() == Thread::State::Running) - from_thread->set_state(Thread::State::Runnable); + // If the last process hasn't blocked (still marked as running), + // mark it as runnable for the next round. + if (from_thread->state() == Thread::State::Running) + from_thread->set_state(Thread::State::Runnable); #ifdef LOG_EVERY_CONTEXT_SWITCH - const auto msg = "Scheduler[{}]: {} -> {} [prio={}] {:#04x}:{:p}"; + const auto msg = "Scheduler[{}]: {} -> {} [prio={}] {:#04x}:{:p}"; - dbgln(msg, - Processor::current_id(), from_thread->tid().value(), - thread->tid().value(), thread->priority(), thread->regs().cs, thread->regs().ip()); + dbgln(msg, + Processor::current_id(), from_thread->tid().value(), + thread->tid().value(), thread->priority(), thread->regs().cs, thread->regs().ip()); #endif - } auto& proc = Processor::current(); if (!thread->is_initialized()) {