diff options
author | Rodrigo Locatti <rodrigo.locatti@gmail.com> | 2021-06-22 04:22:19 -0300 |
---|---|---|
committer | Rodrigo Locatti <rodrigo.locatti@gmail.com> | 2021-06-22 04:33:07 -0300 |
commit | c9c8537643b970c44d60961f3fefaa223a4a2362 (patch) | |
tree | bd770fb510107c73fce5ce94da9576639f42817e /src/core/core.cpp | |
parent | 0485b8e84bacbf7fd56081822faca46114cbeb85 (diff) |
core: Make is_powered_on atomic
Fixes potential data races when shutting down.
Diffstat (limited to 'src/core/core.cpp')
-rw-r--r-- | src/core/core.cpp | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/core/core.cpp b/src/core/core.cpp index c5004b7b47..e6f1aa0e7b 100644 --- a/src/core/core.cpp +++ b/src/core/core.cpp @@ -3,6 +3,7 @@ // Refer to the license.txt file included. #include <array> +#include <atomic> #include <memory> #include <utility> @@ -377,7 +378,7 @@ struct System::Impl { std::unique_ptr<Core::DeviceMemory> device_memory; Core::Memory::Memory memory; CpuManager cpu_manager; - bool is_powered_on = false; + std::atomic_bool is_powered_on{}; bool exit_lock = false; Reporter reporter; @@ -463,7 +464,7 @@ System::ResultStatus System::Load(Frontend::EmuWindow& emu_window, const std::st } bool System::IsPoweredOn() const { - return impl->is_powered_on; + return impl->is_powered_on.load(std::memory_order::relaxed); } void System::PrepareReschedule() { |