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 | 13edf2e07121163501f1d0559d104b477f586f98 (patch) | |
| tree | bd770fb510107c73fce5ce94da9576639f42817e /src/core/core.cpp | |
| parent | 3fb11c6e777392e69a7b285c332be534b284899d (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() { |
