// // Created by ps on 19-3-1. // #ifndef GB28181SDK_SPINLOCK_H #define GB28181SDK_SPINLOCK_H #include class SpinLock { public: SpinLock() : m_lock(ATOMIC_FLAG_INIT) {} virtual ~SpinLock() { } void lock() { while (m_lock.test_and_set()); } void unlock() { m_lock.clear(); } private: std::atomic_flag m_lock; }; #endif //GB28181SDK_SPINLOCK_H