summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorbunnei <bunneidev@gmail.com>2020-09-01 03:20:49 +0200
committerGitHub <noreply@github.com>2020-09-01 03:20:49 +0200
commita1f13a366276ffa0c73d1ddbbbe850dd007a05c3 (patch)
tree58c61d2c3a25f21382138c90573fdacdc8aad967
parentMerge pull request #4587 from yuzu-emu/tsan-microprofiler (diff)
parenthle/kernel: Fix data race in GetCurrentHostThreadID (diff)
downloadyuzu-a1f13a366276ffa0c73d1ddbbbe850dd007a05c3.tar
yuzu-a1f13a366276ffa0c73d1ddbbbe850dd007a05c3.tar.gz
yuzu-a1f13a366276ffa0c73d1ddbbbe850dd007a05c3.tar.bz2
yuzu-a1f13a366276ffa0c73d1ddbbbe850dd007a05c3.tar.lz
yuzu-a1f13a366276ffa0c73d1ddbbbe850dd007a05c3.tar.xz
yuzu-a1f13a366276ffa0c73d1ddbbbe850dd007a05c3.tar.zst
yuzu-a1f13a366276ffa0c73d1ddbbbe850dd007a05c3.zip
-rw-r--r--src/core/hle/kernel/kernel.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/core/hle/kernel/kernel.cpp b/src/core/hle/kernel/kernel.cpp
index cabe8d418..f2b0fe2fd 100644
--- a/src/core/hle/kernel/kernel.cpp
+++ b/src/core/hle/kernel/kernel.cpp
@@ -219,6 +219,7 @@ struct KernelCore::Impl {
return static_cast<u32>(system.GetCpuManager().CurrentCore());
}
}
+ std::unique_lock lock{register_thread_mutex};
const auto it = host_thread_ids.find(this_id);
if (it == host_thread_ids.end()) {
return Core::INVALID_HOST_THREAD_ID;
@@ -324,7 +325,7 @@ struct KernelCore::Impl {
std::unordered_map<std::thread::id, u32> host_thread_ids;
u32 registered_thread_ids{Core::Hardware::NUM_CPU_CORES};
std::bitset<Core::Hardware::NUM_CPU_CORES> registered_core_threads;
- std::mutex register_thread_mutex;
+ mutable std::mutex register_thread_mutex;
// Kernel memory management
std::unique_ptr<Memory::MemoryManager> memory_manager;