aboutsummaryrefslogtreecommitdiff
path: root/arch/x86_64/include
diff options
context:
space:
mode:
authorFabian Imhof <fabian.imhof@ost.ch>2024-12-03 08:06:40 +0000
committerFabian Imhof <fabian.imhof@ost.ch>2024-12-03 08:06:40 +0000
commit4f7ea612982a9ee83023e43724ff53f8dce65fe0 (patch)
tree1d5a7abcb386061c51468f7d1dd3801c49e0247b /arch/x86_64/include
parentb4962c8c7b94fce2e67a00671de87fa96fdbb659 (diff)
downloadteachos-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.hpp15
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};