Merge pull request #4586 from yuzu-emu/tsan-cpu-interrupt

cpu_interrupt_handler: Make is_interrupted an atomic
This commit is contained in:
bunnei 2020-08-28 09:21:47 -04:00 committed by GitHub
commit 40320a1d84
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 4 additions and 5 deletions

View File

@ -7,9 +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>();
}
CPUInterruptHandler::~CPUInterruptHandler() = default; CPUInterruptHandler::~CPUInterruptHandler() = default;
@ -17,7 +15,7 @@ void CPUInterruptHandler::SetInterrupt(bool is_interrupted_) {
if (is_interrupted_) { if (is_interrupted_) {
interrupt_event->Set(); interrupt_event->Set();
} }
this->is_interrupted = is_interrupted_; is_interrupted = is_interrupted_;
} }
void CPUInterruptHandler::AwaitInterrupt() { void CPUInterruptHandler::AwaitInterrupt() {

View File

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