More reworking of Callbacks, plus some other little fixes.

This commit is contained in:
Henrik Rydgard 2012-11-07 15:44:48 +01:00
parent cf098dfd67
commit aea0580297
19 changed files with 704 additions and 292 deletions

View file

@ -171,7 +171,7 @@ retry:
EventFlagTh *t = &e->waitingThreads[i];
if (__KernelEventFlagMatches(&e->nef.currentPattern, t->bits, t->wait, t->outAddr))
{
__KernelResumeThread(t->tid);
__KernelResumeThreadFromWait(t->tid);
wokeThreads = true;
e->nef.numWaitThreads--;
e->waitingThreads.erase(e->waitingThreads.begin() + i);
@ -216,8 +216,8 @@ void sceKernelWaitEventFlag()
timeout = Memory::Read_U32(timeoutPtr);
__KernelWaitCurThread(WAITTYPE_EVENTFLAG, id, 0, 0, false);
// MUST NOT return a value after __KernelWaitCurThread as we may have been rescheduled!
}
RETURN(0);
}
else
{
@ -255,8 +255,8 @@ void sceKernelWaitEventFlagCB()
timeout = Memory::Read_U32(timeoutPtr);
__KernelWaitCurThread(WAITTYPE_EVENTFLAG, id, 0, 0, true);
__KernelCheckCallbacks();
}
RETURN(0);
}
else
{