aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorChloe Marcec <dmarcecguzman@gmail.com>2021-09-09 00:10:52 +1000
committerChloe Marcec <dmarcecguzman@gmail.com>2021-09-09 00:10:52 +1000
commit398b0ce79936e86b12e23d486d9b690a3bcb574e (patch)
tree6a03624e29061184fe7bc2b59127354e5a855d5d /src
parentdd526c8bf52e4935edadba5240727ecf9627738f (diff)
Mark is_complete as atomic
Diffstat (limited to 'src')
-rw-r--r--src/core/hle/service/acc/async_context.cpp6
-rw-r--r--src/core/hle/service/acc/async_context.h3
2 files changed, 5 insertions, 4 deletions
diff --git a/src/core/hle/service/acc/async_context.cpp b/src/core/hle/service/acc/async_context.cpp
index f7a7e34eac..4593231327 100644
--- a/src/core/hle/service/acc/async_context.cpp
+++ b/src/core/hle/service/acc/async_context.cpp
@@ -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();
}
diff --git a/src/core/hle/service/acc/async_context.h b/src/core/hle/service/acc/async_context.h
index 6592326d08..c694b4946b 100644
--- a/src/core/hle/service/acc/async_context.h
+++ b/src/core/hle/service/acc/async_context.h
@@ -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;
};