diff --git a/Utilities/Thread.h b/Utilities/Thread.h index 7917744f24..e31158047c 100644 --- a/Utilities/Thread.h +++ b/Utilities/Thread.h @@ -286,13 +286,6 @@ public: // Sets the preferred affinity mask for this thread static void set_thread_affinity_mask(u64 mask); - - // Spawn a detached named thread - template - [[deprecated]] static void spawn(std::string_view name, F&& func) - { - new named_thread(thread_state::detached, name, std::forward(func)); - } }; // Derived from the callable object Context, possibly a lambda diff --git a/rpcs3/Emu/RSX/Overlays/overlay_osk.cpp b/rpcs3/Emu/RSX/Overlays/overlay_osk.cpp index 9d70bfa838..aef23b3ba1 100644 --- a/rpcs3/Emu/RSX/Overlays/overlay_osk.cpp +++ b/rpcs3/Emu/RSX/Overlays/overlay_osk.cpp @@ -187,7 +187,7 @@ namespace rsx fade_animation.duration = 0.5f; fade_animation.active = true; - thread_ctrl::spawn("osk input thread", [this] + std::lock_guard{m_threadpool_mutex}, m_workers.emplace_back([this] { if (auto error = run_input_loop()) { diff --git a/rpcs3/Emu/RSX/RSXThread.cpp b/rpcs3/Emu/RSX/RSXThread.cpp index 78c13e1d58..7153a26c7b 100644 --- a/rpcs3/Emu/RSX/RSXThread.cpp +++ b/rpcs3/Emu/RSX/RSXThread.cpp @@ -497,7 +497,7 @@ namespace rsx vblank_count = 0; - thread_ctrl::spawn("VBlank Thread", [this]() + auto vblank_body = [this]() { // See sys_timer_usleep for details #ifdef __linux__ @@ -561,9 +561,11 @@ namespace rsx thread_ctrl::wait_for(100); } - }); + }; - thread_ctrl::spawn("RSX Decompiler Thread", [this] + g_fxo->init>("VBlank Thread", std::move(vblank_body)); + + auto decomp_body = [this] { if (g_cfg.video.disable_asynchronous_shader_compiler) { @@ -594,7 +596,9 @@ namespace rsx } on_decompiler_exit(); - }); + }; + + g_fxo->init>("RSX Decompiler Thread", std::move(decomp_body)); // Raise priority above other threads thread_ctrl::set_native_priority(1);