diff options
| author | bunnei <bunneidev@gmail.com> | 2020-08-31 21:20:49 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-08-31 21:20:49 -0400 |
| commit | 15cf2bfbcbaa75e409e39e363c6c23bcd507cf65 (patch) | |
| tree | 58c61d2c3a25f21382138c90573fdacdc8aad967 /src/core/hle/kernel/kernel.cpp | |
| parent | b4f41bde91716e6eed37a92aeea533e7a70a82b3 (diff) | |
| parent | 6bf10ea8cf106fc3f18087c7223260792def1fe2 (diff) | |
Merge pull request #4589 from ReinUsesLisp/tsan-host
hle/kernel: Fix data race in GetCurrentHostThreadID
Diffstat (limited to 'src/core/hle/kernel/kernel.cpp')
| -rw-r--r-- | src/core/hle/kernel/kernel.cpp | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/core/hle/kernel/kernel.cpp b/src/core/hle/kernel/kernel.cpp index cabe8d4187..f2b0fe2fdf 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; |
