aboutsummaryrefslogtreecommitdiff
path: root/src/core/hle/kernel/k_thread.h
diff options
context:
space:
mode:
authorlat9nq <lat9nq@gmail.com>2022-04-01 18:57:40 -0400
committerlat9nq <lat9nq@gmail.com>2022-04-03 21:47:58 -0400
commit6bcbbb29e7822f5ebd6ac985066dfdd0890492f0 (patch)
treed903d0ab561c399600819b81e0b5823044ad7922 /src/core/hle/kernel/k_thread.h
parentd6a0666268d5ef51936c2475d33ab37ff14462e4 (diff)
k_thread: Fix data race
TSan reports a data race between writing at cpp:1162 and reading at h:262. Make the thread_state atomic to prevent this.
Diffstat (limited to 'src/core/hle/kernel/k_thread.h')
-rw-r--r--src/core/hle/kernel/k_thread.h3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/core/hle/kernel/k_thread.h b/src/core/hle/kernel/k_thread.h
index f46db7298..d0fd85130 100644
--- a/src/core/hle/kernel/k_thread.h
+++ b/src/core/hle/kernel/k_thread.h
@@ -5,6 +5,7 @@
#pragma once
#include <array>
+#include <atomic>
#include <span>
#include <string>
#include <utility>
@@ -751,7 +752,7 @@ private:
KAffinityMask original_physical_affinity_mask{};
s32 original_physical_ideal_core_id{};
s32 num_core_migration_disables{};
- ThreadState thread_state{};
+ std::atomic<ThreadState> thread_state{};
std::atomic<bool> termination_requested{};
bool wait_cancelled{};
bool cancellable{};