From 09cd3a7a0734403050594d7a135f206baf03363d Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Thu, 1 Aug 2019 19:32:16 +0200 Subject: [PATCH] Scheduler: Fix deadlock when first scheduling candidate being inspected Somewhat reproducible by opening ProcessManager and trying to view the stacks for WindowServer. Regressed in 53262cd08b08f3d4d2b77cff9c348e84b1bf5eb9. --- Kernel/Scheduler.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Kernel/Scheduler.cpp b/Kernel/Scheduler.cpp index 10b1f899f8..978d889041 100644 --- a/Kernel/Scheduler.cpp +++ b/Kernel/Scheduler.cpp @@ -396,7 +396,7 @@ bool Scheduler::pick_next() auto* previous_head = runnable_list.first(); for (;;) { // Move head to tail. - runnable_list.append(*previous_head); + runnable_list.append(*runnable_list.first()); auto* thread = runnable_list.first(); if (!thread->process().is_being_inspected() && (thread->state() == Thread::Runnable || thread->state() == Thread::Running)) {