Reschedule after acquiring a lock.

This matches the actual test results.
This commit is contained in:
Unknown W. Brackets 2012-11-14 23:40:20 -08:00
parent 2613ed8806
commit a539580195
2 changed files with 4 additions and 2 deletions

View file

@ -125,7 +125,9 @@ void sceKernelLockMutex(SceUID id, int count, u32 timeoutPtr)
{
mutex->nm.lockLevel += count;
mutex->nm.lockThread = __KernelGetCurThread();
// Nobody had it locked - no need to block
// Needed to get the proper order per real PSP.
__KernelReSchedule("mutex locked");
}
else if ((mutex->nm.attr & PSP_MUTEX_ATTR_ALLOW_RECURSIVE) && mutex->nm.lockThread == __KernelGetCurThread())
{

View file

@ -31,6 +31,7 @@ tests_good = [
"string/string",
"gpu/callbacks/ge_callbacks",
"threads/mbx/mbx",
"threads/mutex/mutex",
"threads/semaphores/semaphores",
"threads/semaphores/cancel/cancel",
"threads/semaphores/create/create",
@ -49,7 +50,6 @@ tests_next = [
# These are the next tests up for fixing. These run by default.
"threads/fpl/fpl",
"threads/msgpipe/msgpipe",
"threads/mutex/mutex",
"threads/scheduling/scheduling",
"threads/semaphores/priority/priority",
"threads/semaphores/wait/wait",