#ifndef SPIN_LOCK_H #define SPIN_LOCK_H /* spin_lock.h */ #include "core/typedefs.h" #include class SpinLock { std::atomic_flag locked = ATOMIC_FLAG_INIT; public: _ALWAYS_INLINE_ void lock() { while (locked.test_and_set(std::memory_order_acquire)) { ; } } _ALWAYS_INLINE_ void unlock() { locked.clear(std::memory_order_release); } }; #endif // SPIN_LOCK_H