#ifndef SPIN_LOCK_H #define SPIN_LOCK_H #include namespace smo { /** * @brief Simple spinlock using std::atomic */ class SpinLock { public: SpinLock() : locked(false) {} bool tryAcquire() { bool expected = false; return locked.compare_exchange_strong(expected, true); } void release() { locked.store(false); } private: std::atomic locked; }; } // namespace smo #endif // SPIN_LOCK_H