Io: Update async priority more correctly.

When an operation finishes, whether it uses the priority from the first
operation or the current thread's priority depends on sdk version, it
seems.

This also makes it resolve the default priority on open, so that changing
the default afterward doesn't affect already open descriptors.
This commit is contained in:
Unknown W. Brackets 2020-01-03 13:09:58 -08:00
parent 0a5ec48382
commit 593e48b865
4 changed files with 42 additions and 18 deletions

View file

@ -16,9 +16,11 @@
// https://github.com/hrydgard/ppsspp and http://www.ppsspp.org/.
#include "Common/ChunkFile.h"
#include "Core/CoreTiming.h"
#include "Core/MemMapHelpers.h"
#include "Core/HLE/HLE.h"
#include "Core/HLE/HLEHelperThread.h"
#include "Core/HLE/KernelWaitHelpers.h"
#include "Core/HLE/sceKernelThread.h"
#include "Core/HLE/sceKernelMemory.h"
#include "Core/MIPS/MIPSCodeUtils.h"
@ -91,6 +93,13 @@ void HLEHelperThread::ChangePriority(u32 prio) {
KernelChangeThreadPriority(id_, prio);
}
void HLEHelperThread::Resume(WaitType waitType, SceUID uid, int result) {
bool res = HLEKernel::ResumeFromWait(id_, waitType, uid, result);
if (!res) {
ERROR_LOG(HLE, "Failed to wake helper thread from wait");
}
}
void HLEHelperThread::Forget() {
id_ = 0;
entry_ = 0;