diff options
author | Ameer <aj662@drexel.edu> | 2020-07-04 00:59:40 -0400 |
---|---|---|
committer | Ameer <aj662@drexel.edu> | 2020-07-04 00:59:40 -0400 |
commit | f829932ed191ad469df01342191bf2725e8a20bb (patch) | |
tree | 0ae185ce3ef43ef9b085aae7b9ad5abb04e3d239 /src/common/spin_lock.h | |
parent | d00972fce1fe5f2eb13c7e5d7e4e56036cb6bc91 (diff) | |
parent | 3096adb3471af1b094d670751e476c337007d299 (diff) |
Fix merge conflicts?
Diffstat (limited to 'src/common/spin_lock.h')
-rw-r--r-- | src/common/spin_lock.h | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/src/common/spin_lock.h b/src/common/spin_lock.h new file mode 100644 index 000000000..1df5528c4 --- /dev/null +++ b/src/common/spin_lock.h @@ -0,0 +1,26 @@ +// 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 |