From 10680c57f18d23b41cf9f6cca05cbf61c9b6bfc7 Mon Sep 17 00:00:00 2001 From: Fire Cube Date: Mon, 26 May 2025 21:17:13 +0200 Subject: [PATCH] fix --- src/core/libraries/kernel/equeue.cpp | 19 ++++++------------- 1 file changed, 6 insertions(+), 13 deletions(-) diff --git a/src/core/libraries/kernel/equeue.cpp b/src/core/libraries/kernel/equeue.cpp index 958019cd3..4e5c6a207 100644 --- a/src/core/libraries/kernel/equeue.cpp +++ b/src/core/libraries/kernel/equeue.cpp @@ -266,23 +266,16 @@ int PS4_SYSV_ABI sceKernelWaitEqueue(SceKernelEqueue eq, SceKernelEvent* ev, int return ORBIS_KERNEL_ERROR_EINVAL; } + // When the timeout is nullptr, we wait indefinitely if (eq->HasSmallTimer()) { - ASSERT(timo && *timo); - *out = eq->WaitForSmallTimer(ev, num, *timo); + *out = eq->WaitForSmallTimer(ev, num, (timo != nullptr) ? *timo : 0); } else { - if (timo == nullptr) { // wait until an event arrives without timing out - *out = eq->WaitForEvents(ev, num, 0); - } - - if (timo != nullptr) { + if (*timo == 0) { // Only events that have already arrived at the time of this function call can be // received - if (*timo == 0) { - *out = eq->GetTriggeredEvents(ev, num); - } else { - // Wait until an event arrives with timing out - *out = eq->WaitForEvents(ev, num, *timo); - } + *out = eq->GetTriggeredEvents(ev, num); + } else { + *out = eq->WaitForEvents(ev, num, (timo != nullptr) ? *timo : 0); } }