| 1234567891011121314151617181920212223242526 |
- // Copyright 2020 yuzu Emulator Project
- // Licensed under GPLv2 or any later version
- // Refer to the license.txt file included.
- #pragma once
- #include <atomic>
- namespace Common {
- /**
- * SpinLock class
- * a lock similar to mutex that forces a thread to spin wait instead calling the
- * supervisor. Should be used on short sequences of code.
- */
- class SpinLock {
- public:
- void lock();
- void unlock();
- bool try_lock();
- private:
- std::atomic_flag lck = ATOMIC_FLAG_INIT;
- };
- } // namespace Common
|