Browse Source

cpu_interrupt_handler: Make is_interrupted an atomic

Fixes a race condition detected from tsan
nce_cpp
ReinUsesLisp 5 years ago
parent
commit
7eb6cc742a
  1. 2
      src/core/arm/cpu_interrupt_handler.cpp
  2. 3
      src/core/arm/cpu_interrupt_handler.h

2
src/core/arm/cpu_interrupt_handler.cpp

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

3
src/core/arm/cpu_interrupt_handler.h

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

Loading…
Cancel
Save