Mark is_complete as atomic

This commit is contained in:
Chloe Marcec 2021-09-09 00:10:52 +10:00
parent 89958e27aa
commit 543081e4a1
2 changed files with 5 additions and 4 deletions

View File

@ -46,11 +46,11 @@ void IAsyncContext::Cancel(Kernel::HLERequestContext& ctx) {
void IAsyncContext::HasDone(Kernel::HLERequestContext& ctx) {
LOG_DEBUG(Service_ACC, "called");
is_complete = IsComplete();
is_complete.store(IsComplete());
IPC::ResponseBuilder rb{ctx, 3};
rb.Push(ResultSuccess);
rb.Push(is_complete);
rb.Push(is_complete.load());
}
void IAsyncContext::GetResult(Kernel::HLERequestContext& ctx) {
@ -61,7 +61,7 @@ void IAsyncContext::GetResult(Kernel::HLERequestContext& ctx) {
}
void IAsyncContext::MarkComplete() {
is_complete = true;
is_complete.store(true);
compeletion_event.GetWritableEvent().Signal();
}

View File

@ -4,6 +4,7 @@
#pragma once
#include <atomic>
#include "core/hle/kernel/k_event.h"
#include "core/hle/service/service.h"
@ -29,7 +30,7 @@ protected:
void MarkComplete();
bool is_complete{false};
std::atomic<bool> is_complete{false};
Kernel::KEvent compeletion_event;
};