Don't allow release wait for HLE delays.

Although, presumably the thread would stop waiting, I guess the HLE func
in most cases probably checks and re-waits?

Fixes breakage in Jeanne d' Arc, which constantly releases from wait the
main thread, but calls things like sceMpegCreate which do block.
This commit is contained in:
Unknown W. Brackets committed 2013-06-08 23:39:49 -07:00
1 parent 533541615f
commit 0c41d4e952
3 files changed
+9 -3

No files matched your search

+5
View File
@@ -2543,6 +2543,11 @@ int sceKernelReleaseWaitThread(SceUID threadID)
{
if (!t->isWaiting())
return SCE_KERNEL_ERROR_NOT_WAIT;
if (t->nt.waitType == WAITTYPE_HLEDELAY)
{
WARN_LOG_REPORT(HLE, "sceKernelReleaseWaitThread(): Refusing to wake HLE-delayed thread, right thing to do?");
return SCE_KERNEL_ERROR_NOT_WAIT;
}
__KernelResumeThreadFromWait(threadID, SCE_KERNEL_ERROR_RELEASE_WAIT);
hleReSchedule("thread released from wait");