From ad677bd1ed2c6d1a052d426117a4d20a0b59ac52 Mon Sep 17 00:00:00 2001 From: Amlal El Mahrouss Date: Tue, 31 Dec 2024 16:50:34 +0100 Subject: FIX: CUSA and improved algorithm. Signed-off-by: Amlal El Mahrouss --- dev/Kernel/src/Semaphore.cc | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) (limited to 'dev/Kernel/src/Semaphore.cc') diff --git a/dev/Kernel/src/Semaphore.cc b/dev/Kernel/src/Semaphore.cc index 257fed48..b63d5be3 100644 --- a/dev/Kernel/src/Semaphore.cc +++ b/dev/Kernel/src/Semaphore.cc @@ -15,7 +15,7 @@ namespace Kernel Bool Semaphore::Unlock() noexcept { if (fLockingProcess) - fLockingProcess = nullptr; + fLockingProcess = UserThread(); else return No; @@ -25,7 +25,7 @@ namespace Kernel /***********************************************************************************/ /// @brief Locks process in the semaphore. /***********************************************************************************/ - Bool Semaphore::Lock(UserProcess* process) + Bool Semaphore::Lock(UserThread& process) { if (!process || fLockingProcess) return No; @@ -46,11 +46,8 @@ namespace Kernel /***********************************************************************************/ /// @brief Try lock or wait. /***********************************************************************************/ - Bool Semaphore::LockOrWait(UserProcess* process, TimerInterface* timer) + Bool Semaphore::LockOrWait(UserThread& process, TimerInterface* timer) { - if (process == nullptr) - return No; - if (timer == nullptr) return No; -- cgit v1.2.3