diff options
| author | Richard Qin <richard.qin.x@gmail.com> | 2026-04-21 23:21:23 +0800 |
|---|---|---|
| committer | Richard Qin <richard.qin.x@gmail.com> | 2026-04-21 23:21:23 +0800 |
| commit | 1768a553c054b3e4774daaeda6c44f511ca7077a (patch) | |
| tree | 8d027233f3e04fdcc7b34679efef53a742ba20f6 /na/kernel/sync/spinlock.h | |
| parent | 92ac3931ec7c2ee7746d38499edd9179c943c5ac (diff) | |
| download | lume-1768a553c054b3e4774daaeda6c44f511ca7077a.tar.gz lume-1768a553c054b3e4774daaeda6c44f511ca7077a.tar.xz | |
feat: refactor Spinlock implementation to use atomic operations for lock management
Diffstat (limited to 'na/kernel/sync/spinlock.h')
| -rw-r--r-- | na/kernel/sync/spinlock.h | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/na/kernel/sync/spinlock.h b/na/kernel/sync/spinlock.h index b3e3393..cf70a30 100644 --- a/na/kernel/sync/spinlock.h +++ b/na/kernel/sync/spinlock.h @@ -14,6 +14,7 @@ */ #include <lume/types.h> +#include <lume/atomic.h> #include "cpu_state.h" class Spinlock { @@ -35,7 +36,7 @@ public: bool is_held_by_current_cpu() const; private: - uint32 locked_ = 0; // 0 = free, 1 = held + lume::atomic<uint32> locked_; // 0 = free, 1 = held const char* name_ = "uninit"; // Lock name (for panic messages) uint64 cpu_id_ = sync::kInvalidCpuId; // Holder CPU ID }; |
