diff --git a/rpcs3/Emu/NP/np_contexts.cpp b/rpcs3/Emu/NP/np_contexts.cpp index 8bcfd5f01c..46d773d127 100644 --- a/rpcs3/Emu/NP/np_contexts.cpp +++ b/rpcs3/Emu/NP/np_contexts.cpp @@ -17,7 +17,12 @@ generic_async_transaction_context::generic_async_transaction_context(const SceNp generic_async_transaction_context::~generic_async_transaction_context() { if (thread.joinable()) - thread.join(); + { + if (std::this_thread::get_id() == thread.get_id()) + thread.detach(); + else + thread.join(); + } } std::optional generic_async_transaction_context::get_transaction_status()