From 642a6aa4ad9f08a55c99ea4473474e7b4479d50d Mon Sep 17 00:00:00 2001 From: Bananymous Date: Mon, 24 Jul 2023 22:28:04 +0300 Subject: [PATCH] Kernel: Process::exit() unblocks the whole lock before blocking --- kernel/kernel/Process.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/kernel/kernel/Process.cpp b/kernel/kernel/Process.cpp index b1ab1cb3d..44e5c25d6 100644 --- a/kernel/kernel/Process.cpp +++ b/kernel/kernel/Process.cpp @@ -135,7 +135,8 @@ namespace Kernel while (m_exit_status.waiting > 0) { m_exit_status.semaphore.unblock(); - m_lock.unlock(); + while (m_lock.is_locked()) + m_lock.unlock(); Scheduler::get().reschedule(); m_lock.lock(); }