首次提交
This commit is contained in:
@@ -0,0 +1,22 @@
|
||||
#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
|
||||
Reference in New Issue
Block a user