cpu_interrupt_handler: Make is_interrupted an atomic

Fixes a race condition detected from tsan
This commit is contained in:
ReinUsesLisp 2020-08-26 01:16:40 +00:00
parent 4efaecf125
commit ea7bda25ba
2 changed files with 3 additions and 2 deletions

View File

@ -7,7 +7,7 @@
namespace Core { namespace Core {
CPUInterruptHandler::CPUInterruptHandler() : is_interrupted{} { CPUInterruptHandler::CPUInterruptHandler() {
interrupt_event = std::make_unique<Common::Event>(); interrupt_event = std::make_unique<Common::Event>();
} }

View File

@ -4,6 +4,7 @@
#pragma once #pragma once
#include <atomic>
#include <memory> #include <memory>
namespace Common { namespace Common {
@ -32,7 +33,7 @@ public:
void AwaitInterrupt(); void AwaitInterrupt();
private: private:
bool is_interrupted{}; std::atomic_bool is_interrupted{false};
std::unique_ptr<Common::Event> interrupt_event; std::unique_ptr<Common::Event> interrupt_event;
}; };