Remove cpu_thread destructor

This commit is contained in:
Eladash 2021-02-21 16:16:06 +02:00 committed by Ivan
parent 2e5f321583
commit 96400234a8
2 changed files with 5 additions and 3 deletions

View file

@ -537,6 +537,8 @@ void cpu_thread::operator()()
g_tls_current_cpu_thread = nullptr; g_tls_current_cpu_thread = nullptr;
g_threads_deleted++;
_this = nullptr; _this = nullptr;
} }
@ -590,8 +592,6 @@ void cpu_thread::operator()()
cpu_thread::~cpu_thread() cpu_thread::~cpu_thread()
{ {
vm::cleanup_unlock(*this);
g_threads_deleted++;
} }
cpu_thread::cpu_thread(u32 id) cpu_thread::cpu_thread(u32 id)

View file

@ -9031,7 +9031,7 @@ struct spu_llvm
{ {
const u64 name = atomic_storage<u64>::load(spu.block_hash); const u64 name = atomic_storage<u64>::load(spu.block_hash);
if (!(spu.state.load() & (cpu_flag::wait + cpu_flag::stop + cpu_flag::dbg_global_pause))) if (auto state = +spu.state; !::is_paused(state) && !::is_stopped(state) && !(state & cpu_flag::wait))
{ {
const auto found = std::as_const(samples).find(name); const auto found = std::as_const(samples).find(name);
@ -9108,6 +9108,8 @@ struct spu_llvm
(workers.begin() + (worker_index++ % worker_count))->registered.push(reinterpret_cast<u64>(_old), &func); (workers.begin() + (worker_index++ % worker_count))->registered.push(reinterpret_cast<u64>(_old), &func);
} }
static_cast<void>(prof_mutex.init_always([&]{ samples.clear(); }));
for (u32 i = 0; i < worker_count; i++) for (u32 i = 0; i < worker_count; i++)
{ {
(workers.begin() + i)->registered.push(0, nullptr); (workers.begin() + i)->registered.push(0, nullptr);