From 7b4a2fe3d14faa517bf35a6241cfc684eb39ced0 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 b1ab1cb3..44e5c25d 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(); }