diff --git a/src/core/libraries/kernel/equeue.cpp b/src/core/libraries/kernel/equeue.cpp index a1ce80f43..e28f31c01 100644 --- a/src/core/libraries/kernel/equeue.cpp +++ b/src/core/libraries/kernel/equeue.cpp @@ -364,17 +364,16 @@ int PS4_SYSV_ABI sceKernelAddTimerEvent(SceKernelEqueue eq, int id, SceKernelUse io_context, std::chrono::milliseconds(interval_ms)); KernelSignalRequest(); - std::thread([]() { io_context.run(); }).detach(); + + if (!eq->AddEvent(event)) { + return ORBIS_KERNEL_ERROR_ENOMEM; + } timer->async_wait( [eq, event_data = event.event, interval_ms, timer](const boost::system::error_code& ec) { TimerCallback(ec, eq, event_data, interval_ms); }); - if (!eq->AddEvent(event)) { - return ORBIS_KERNEL_ERROR_ENOMEM; - } - return ORBIS_OK; }