Files
Radio/module/radio/Toolbox_private/SpinLock.h
T
2026-06-16 13:38:08 +08:00

22 lines
470 B
C++

#ifndef Toolbox_SpinLock_H
#define Toolbox_SpinLock_H
#include <atomic>
namespace Toolbox {
class SpinLock {
public:
void lock();
bool tryLock();
bool tryLock(int durationMillis);
void unlock();
private:
std::atomic_flag flag = ATOMIC_FLAG_INIT;
};
class SpinLockGuard {
public:
explicit SpinLockGuard(SpinLock *lock);
~SpinLockGuard();
private:
SpinLock *mLock;
};
}
#endif