diff --git a/Kernel/Process.cpp b/Kernel/Process.cpp index d2f01fcd7e..619195dcfa 100644 --- a/Kernel/Process.cpp +++ b/Kernel/Process.cpp @@ -321,7 +321,7 @@ int Process::exec(const String& path, Vector&& arguments, Vector kprintf("Process %u (%s) exec'd %s @ %p\n", pid(), name().characters(), path.characters(), m_tss.eip); #endif - set_state(ExecPhase1); + set_state(Skip1SchedulerPass); if (current == this) { bool success = Scheduler::yield(); @@ -822,6 +822,7 @@ void Process::sys$sigreturn() dbgprintf("sys$sigreturn in %s(%u)\n", name().characters(), pid()); dbgprintf(" -> resuming execution at %w:%x\n", m_tss.cs, m_tss.eip); #endif + set_state(Skip1SchedulerPass); Scheduler::yield(); kprintf("sys$sigreturn failed in %s(%u)\n", name().characters(), pid()); ASSERT_NOT_REACHED(); diff --git a/Kernel/Process.h b/Kernel/Process.h index 5c471bb685..dd3dfc959d 100644 --- a/Kernel/Process.h +++ b/Kernel/Process.h @@ -43,8 +43,8 @@ public: Invalid = 0, Runnable, Running, - ExecPhase1, - ExecPhase2, + Skip1SchedulerPass, + Skip0SchedulerPasses, Dead, Forgiven, BeingInspected, @@ -306,8 +306,8 @@ static inline const char* toString(Process::State state) case Process::Runnable: return "Runnable"; case Process::Running: return "Running"; case Process::Dead: return "Dead"; - case Process::ExecPhase1: return "ExecPhase1"; - case Process::ExecPhase2: return "ExecPhase2"; + case Process::Skip1SchedulerPass: return "Skip1"; + case Process::Skip0SchedulerPasses: return "Skip0"; case Process::Forgiven: return "Forgiven"; case Process::BlockedSleep: return "Sleep"; case Process::BlockedWait: return "Wait"; diff --git a/Kernel/Scheduler.cpp b/Kernel/Scheduler.cpp index 1f8384e965..bbc0ee54de 100644 --- a/Kernel/Scheduler.cpp +++ b/Kernel/Scheduler.cpp @@ -56,12 +56,12 @@ bool Scheduler::pick_next() return true; } - if (process.state() == Process::ExecPhase1) { - process.set_state(Process::ExecPhase2); + if (process.state() == Process::Skip1SchedulerPass) { + process.set_state(Process::Skip0SchedulerPasses); return true; } - if (process.state() == Process::ExecPhase2) { + if (process.state() == Process::Skip0SchedulerPasses) { process.set_state(Process::Runnable); return true; }