diff options
author | lat9nq <lat9nq@gmail.com> | 2022-04-05 00:37:46 -0400 |
---|---|---|
committer | lat9nq <lat9nq@gmail.com> | 2022-04-05 19:55:56 -0400 |
commit | b976cac49dd7bbfc461802d64d467f9c5b73ce3b (patch) | |
tree | c09a194cadf961f124e064725014538f0eafe8b1 /src | |
parent | 983916e9193a65d2cbd55039cc1569c46a7081c1 (diff) |
k_system_control: Fix data race
`return distribution(gen)` is a data race between a read and a write in
two threads, reported by TSan. Remove static random number generators so
they aren't using the same generator.
Diffstat (limited to 'src')
-rw-r--r-- | src/core/hle/kernel/board/nintendo/nx/k_system_control.cpp | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/core/hle/kernel/board/nintendo/nx/k_system_control.cpp b/src/core/hle/kernel/board/nintendo/nx/k_system_control.cpp index 8027bec00..7765e7848 100644 --- a/src/core/hle/kernel/board/nintendo/nx/k_system_control.cpp +++ b/src/core/hle/kernel/board/nintendo/nx/k_system_control.cpp @@ -148,9 +148,9 @@ u64 GenerateUniformRange(u64 min, u64 max, F f) { } // Anonymous namespace u64 KSystemControl::GenerateRandomU64() { - static std::random_device device; - static std::mt19937 gen(device()); - static std::uniform_int_distribution<u64> distribution(1, std::numeric_limits<u64>::max()); + std::random_device device; + std::mt19937 gen(device()); + std::uniform_int_distribution<u64> distribution(1, std::numeric_limits<u64>::max()); return distribution(gen); } |