mirror of
https://github.com/hrydgard/ppsspp.git
synced 2025-04-02 11:01:50 -04:00
Always check for more callbacks after running one.
This commit is contained in:
parent
54e6a39e74
commit
dcc9f1ae5f
1 changed files with 7 additions and 1 deletions
|
@ -2369,7 +2369,6 @@ void __KernelReturnFromMipsCall()
|
|||
g_inCbCount--;
|
||||
|
||||
// yeah! back in the real world, let's keep going. Should we process more callbacks?
|
||||
__KernelCheckThreadCallbacks(cur, !call->reschedAfter);
|
||||
if (!__KernelExecutePendingMipsCalls(call->reschedAfter))
|
||||
{
|
||||
// Sometimes, we want to stay on the thread.
|
||||
|
@ -2440,6 +2439,13 @@ void ActionAfterCallback::run(MipsCall &call) {
|
|||
Callback *cb = kernelObjects.Get<Callback>(cbId, error);
|
||||
if (cb)
|
||||
{
|
||||
Thread *t = kernelObjects.Get<Thread>(cb->nc.threadId, error);
|
||||
if (t)
|
||||
{
|
||||
// Check for other callbacks to run (including ones this callback scheduled.)
|
||||
__KernelCheckThreadCallbacks(t, true);
|
||||
}
|
||||
|
||||
DEBUG_LOG(HLE, "Left callback %i - %s", cbId, cb->nc.name);
|
||||
// Callbacks that don't return 0 are deleted. But should this be done here?
|
||||
if (currentMIPS->r[MIPS_REG_V0] != 0 || cb->forceDelete)
|
||||
|
|
Loading…
Add table
Reference in a new issue