summaryrefslogtreecommitdiffstats
path: root/src/input_common/keyboard.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/input_common/keyboard.cpp')
-rw-r--r--src/input_common/keyboard.cpp12
1 files changed, 7 insertions, 5 deletions
diff --git a/src/input_common/keyboard.cpp b/src/input_common/keyboard.cpp
index fa0e60ac1..c467ff4c5 100644
--- a/src/input_common/keyboard.cpp
+++ b/src/input_common/keyboard.cpp
@@ -19,16 +19,18 @@ public:
bool GetStatus() const override {
if (toggle) {
- return toggled_status.load();
+ return toggled_status.load(std::memory_order_relaxed);
}
return status.load();
}
void ToggleButton() {
- if (!lock) {
- lock = true;
- toggled_status.store(!toggled_status.load());
+ if (lock) {
+ return;
}
+ lock = true;
+ const bool old_toggle_status = toggled_status.load();
+ toggled_status.store(!old_toggle_status);
}
void UnlockButton() {
@@ -41,7 +43,7 @@ private:
std::shared_ptr<KeyButtonList> key_button_list;
std::atomic<bool> status{false};
std::atomic<bool> toggled_status{false};
- bool lock = {};
+ bool lock{false};
const bool toggle;
};