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_threads_deleted++;
_this = nullptr;
}
@ -590,8 +592,6 @@ void cpu_thread::operator()()
cpu_thread::~cpu_thread()
{
vm::cleanup_unlock(*this);
g_threads_deleted++;
}
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);
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);
@ -9108,6 +9108,8 @@ struct spu_llvm
(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++)
{
(workers.begin() + i)->registered.push(0, nullptr);