Merge pull request #4851 from ReinUsesLisp/core-threads-race

hle/kernel: Remove unused registered_core_threads to fix data races
This commit is contained in:
LC 2020-10-28 04:54:35 -04:00 committed by GitHub
commit 725fcbb368
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -86,8 +86,6 @@ struct KernelCore::Impl {
} }
cores.clear(); cores.clear();
registered_core_threads.reset();
process_list.clear(); process_list.clear();
current_process = nullptr; current_process = nullptr;
@ -199,9 +197,7 @@ struct KernelCore::Impl {
const auto it = std::find(register_host_thread_keys.begin(), end, this_id); const auto it = std::find(register_host_thread_keys.begin(), end, this_id);
ASSERT(core_id < Core::Hardware::NUM_CPU_CORES); ASSERT(core_id < Core::Hardware::NUM_CPU_CORES);
ASSERT(it == end); ASSERT(it == end);
ASSERT(!registered_core_threads[core_id]);
InsertHostThread(static_cast<u32>(core_id)); InsertHostThread(static_cast<u32>(core_id));
registered_core_threads.set(core_id);
} }
void RegisterHostThread() { void RegisterHostThread() {
@ -332,7 +328,6 @@ struct KernelCore::Impl {
// 0-3 IDs represent core threads, >3 represent others // 0-3 IDs represent core threads, >3 represent others
std::atomic<u32> registered_thread_ids{Core::Hardware::NUM_CPU_CORES}; std::atomic<u32> registered_thread_ids{Core::Hardware::NUM_CPU_CORES};
std::bitset<Core::Hardware::NUM_CPU_CORES> registered_core_threads;
// Number of host threads is a relatively high number to avoid overflowing // Number of host threads is a relatively high number to avoid overflowing
static constexpr size_t NUM_REGISTRABLE_HOST_THREADS = 64; static constexpr size_t NUM_REGISTRABLE_HOST_THREADS = 64;