diff options
| author | Fabian Imhof <fabian.imhof@ost.ch> | 2024-12-03 08:06:40 +0000 |
|---|---|---|
| committer | Fabian Imhof <fabian.imhof@ost.ch> | 2024-12-03 08:06:40 +0000 |
| commit | 4f7ea612982a9ee83023e43724ff53f8dce65fe0 (patch) | |
| tree | 1d5a7abcb386061c51468f7d1dd3801c49e0247b /arch/x86_64/include | |
| parent | b4962c8c7b94fce2e67a00671de87fa96fdbb659 (diff) | |
| download | teachos-4f7ea612982a9ee83023e43724ff53f8dce65fe0.tar.xz teachos-4f7ea612982a9ee83023e43724ff53f8dce65fe0.zip | |
improve mutex file structure
Diffstat (limited to 'arch/x86_64/include')
| -rw-r--r-- | arch/x86_64/include/arch/shared/mutex.hpp | 15 |
1 files changed, 3 insertions, 12 deletions
diff --git a/arch/x86_64/include/arch/shared/mutex.hpp b/arch/x86_64/include/arch/shared/mutex.hpp index d874dd8..36a4623 100644 --- a/arch/x86_64/include/arch/shared/mutex.hpp +++ b/arch/x86_64/include/arch/shared/mutex.hpp @@ -16,28 +16,19 @@ namespace teachos::arch::shared /** * @brief Lock the mutex (blocks if not available) */ - void lock() - { - while (true) - { - if (!locked.exchange(true, std::memory_order_acquire)) - { - return; - } - } - } + auto lock() -> void; /** * @brief Try to lock the mutex (non-blocking) * * @return true if lock has been acquired and false otherwise */ - bool try_lock() { return !locked.exchange(true, std::memory_order_acquire); } + auto try_lock() -> bool; /** * @brief Unlock the mutex */ - void unlock() { locked.store(false, std::memory_order_release); } + auto unlock() -> void; private: std::atomic<bool> locked{false}; |
