Chloe Marcec 4 лет назад
Родитель
Сommit
543081e4a1

+ 3 - 3
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();
 }
 

+ 2 - 1
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;
 };