diff options
| author | Amlal El Mahrouss <amlal@nekernel.org> | 2025-08-01 09:16:50 +0100 |
|---|---|---|
| committer | Amlal El Mahrouss <amlal@nekernel.org> | 2025-08-01 09:16:50 +0100 |
| commit | 11ad9b56ccc1ed50c9293ee4771cf135f6b03c99 (patch) | |
| tree | db61e896e60acefaf5995c8c393772ad7a9ad443 /dev/kernel/src/BinaryMutex.cc | |
| parent | 55d4ff5b5d8ec106d9f42e27c5218911d7c47d83 (diff) | |
fix: KernelKit: fix BinaryMutex object, it used to took USER_PROCESS as reference with a explicit default constructor.
Signed-off-by: Amlal El Mahrouss <amlal@nekernel.org>
Diffstat (limited to 'dev/kernel/src/BinaryMutex.cc')
| -rw-r--r-- | dev/kernel/src/BinaryMutex.cc | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/dev/kernel/src/BinaryMutex.cc b/dev/kernel/src/BinaryMutex.cc index 8c8cdc0f..f669d7fa 100644 --- a/dev/kernel/src/BinaryMutex.cc +++ b/dev/kernel/src/BinaryMutex.cc @@ -13,9 +13,8 @@ namespace Kernel { /***********************************************************************************/ Bool BinaryMutex::Unlock() noexcept { - if (fLockingProcess.Status == ProcessStatusKind::kRunning) { - fLockingProcess = USER_PROCESS(); - fLockingProcess.Status = ProcessStatusKind::kFrozen; + if (fLockingProcess->Status == ProcessStatusKind::kRunning) { + fLockingProcess = nullptr; return Yes; } @@ -27,7 +26,7 @@ Bool BinaryMutex::Unlock() noexcept { /// @brief Locks process in the binary mutex. /***********************************************************************************/ -Bool BinaryMutex::Lock(USER_PROCESS& process) { +Bool BinaryMutex::Lock(USER_PROCESS* process) { if (!process || this->IsLocked()) return No; this->fLockingProcess = process; @@ -40,14 +39,14 @@ Bool BinaryMutex::Lock(USER_PROCESS& process) { /***********************************************************************************/ Bool BinaryMutex::IsLocked() const { - return this->fLockingProcess.Status == ProcessStatusKind::kRunning; + return this->fLockingProcess->Status == ProcessStatusKind::kRunning; } /***********************************************************************************/ /// @brief Try lock or wait. /***********************************************************************************/ -Bool BinaryMutex::LockOrWait(USER_PROCESS& process, TimerInterface* timer) { +Bool BinaryMutex::LockOrWait(USER_PROCESS* process, TimerInterface* timer) { if (timer == nullptr) return No; this->Lock(process); @@ -62,7 +61,7 @@ Bool BinaryMutex::LockOrWait(USER_PROCESS& process, TimerInterface* timer) { /// @param sec seconds. /***********************************************************************************/ -BOOL BinaryMutex::WaitForProcess(const Int16& sec) noexcept { +BOOL BinaryMutex::WaitForProcess(const UInt32& sec) noexcept { HardwareTimer hw_timer(rtl_milliseconds(sec)); hw_timer.Wait(); |
