diff --git a/Core/HLE/sceKernelThread.cpp b/Core/HLE/sceKernelThread.cpp index 96e9e6826e..5eda33fa86 100644 --- a/Core/HLE/sceKernelThread.cpp +++ b/Core/HLE/sceKernelThread.cpp @@ -1598,51 +1598,6 @@ u32 __KernelResumeThreadFromWait(SceUID threadID, u64 retval) } } -// Only run when you can safely accept a context switch -// Triggers a waitable event, that is, it wakes up all threads that waits for it -// If any changes were made, it will context switch after the syscall -bool __KernelTriggerWait(WaitType type, int id, bool useRetVal, int retVal, const char *reason, bool dontSwitch) -{ - bool doneAnything = false; - - u32 error; - for (std::vector::iterator iter = threadqueue.begin(); iter != threadqueue.end(); iter++) - { - Thread *t = kernelObjects.Get(*iter, error); - if (t && t->isWaitingFor(type, id)) - { - // This thread was waiting for the triggered object. - t->resumeFromWait(); - if (useRetVal) - t->setReturnValue((u32)retVal); - doneAnything = true; - - if (type == WAITTYPE_THREADEND) - __KernelCancelThreadEndTimeout(*iter); - } - } - -// if (doneAnything) // lumines? - { - if (!dontSwitch) - { - // TODO: time waster - hleReSchedule(reason); - } - } - return doneAnything; -} - -bool __KernelTriggerWait(WaitType type, int id, const char *reason, bool dontSwitch) -{ - return __KernelTriggerWait(type, id, false, 0, reason, dontSwitch); -} - -bool __KernelTriggerWait(WaitType type, int id, int retVal, const char *reason, bool dontSwitch) -{ - return __KernelTriggerWait(type, id, true, retVal, reason, dontSwitch); -} - // makes the current thread wait for an event void __KernelWaitCurThread(WaitType type, SceUID waitID, u32 waitValue, u32 timeoutPtr, bool processCallbacks, const char *reason) { diff --git a/Core/HLE/sceKernelThread.h b/Core/HLE/sceKernelThread.h index c256172ac4..f750b11f09 100644 --- a/Core/HLE/sceKernelThread.h +++ b/Core/HLE/sceKernelThread.h @@ -151,11 +151,6 @@ const char *__KernelGetThreadName(SceUID threadID); void __KernelSaveContext(ThreadContext *ctx, bool vfpuEnabled); void __KernelLoadContext(ThreadContext *ctx, bool vfpuEnabled); -// TODO: Replace this with __KernelResumeThreadFromWait over time as it's misguided. -// It's better that each subsystem keeps track of the list of waiting threads -// and resumes them manually one by one using __KernelResumeThreadFromWait. -bool __KernelTriggerWait(WaitType type, int id, const char *reason, bool dontSwitch = false); -bool __KernelTriggerWait(WaitType type, int id, int retVal, const char *reason, bool dontSwitch); u32 __KernelResumeThreadFromWait(SceUID threadID); // can return an error value u32 __KernelResumeThreadFromWait(SceUID threadID, u32 retval); u32 __KernelResumeThreadFromWait(SceUID threadID, u64 retval);