From f552cb3370a6532ec90856c94e11eac3b31f3c6a Mon Sep 17 00:00:00 2001 From: "Unknown W. Brackets" Date: Sun, 10 Feb 2013 21:32:21 -0800 Subject: [PATCH] Wake delayed threads directly, rather than looping. This saves ~1% during fast forward on a release build. --- Core/HLE/sceKernelThread.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Core/HLE/sceKernelThread.cpp b/Core/HLE/sceKernelThread.cpp index 5cfc9c5fb5..e88a2dee74 100644 --- a/Core/HLE/sceKernelThread.cpp +++ b/Core/HLE/sceKernelThread.cpp @@ -1079,7 +1079,9 @@ void __KernelWaitCurThread(WaitType type, SceUID waitID, u32 waitValue, u32 time void hleScheduledWakeup(u64 userdata, int cyclesLate) { SceUID threadID = (SceUID)userdata; - __KernelTriggerWait(WAITTYPE_DELAY, threadID, "thread delay finished", true); + u32 error; + if (__KernelGetWaitID(threadID, WAITTYPE_DELAY, error) == threadID) + __KernelResumeThreadFromWait(threadID); } void __KernelScheduleWakeup(SceUID threadID, s64 usFromNow)