diff options
author | bunnei <ericbunnie@gmail.com> | 2014-06-02 03:42:50 +0200 |
---|---|---|
committer | bunnei <ericbunnie@gmail.com> | 2014-06-02 03:42:50 +0200 |
commit | 10447d1f4831b495d7bef7711681ddd548f847a6 (patch) | |
tree | 7315bc1d8addcab21bd3e532f806811682c4eb01 /src/core/hle/svc.cpp | |
parent | arm: added option to prepare CPU core (while mid-instruction) for thread reschedule (diff) | |
download | yuzu-10447d1f4831b495d7bef7711681ddd548f847a6.tar yuzu-10447d1f4831b495d7bef7711681ddd548f847a6.tar.gz yuzu-10447d1f4831b495d7bef7711681ddd548f847a6.tar.bz2 yuzu-10447d1f4831b495d7bef7711681ddd548f847a6.tar.lz yuzu-10447d1f4831b495d7bef7711681ddd548f847a6.tar.xz yuzu-10447d1f4831b495d7bef7711681ddd548f847a6.tar.zst yuzu-10447d1f4831b495d7bef7711681ddd548f847a6.zip |
Diffstat (limited to 'src/core/hle/svc.cpp')
-rw-r--r-- | src/core/hle/svc.cpp | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/src/core/hle/svc.cpp b/src/core/hle/svc.cpp index 11b77e2c5..0c2412a65 100644 --- a/src/core/hle/svc.cpp +++ b/src/core/hle/svc.cpp @@ -125,8 +125,11 @@ Result WaitSynchronization1(Handle handle, s64 nano_seconds) { Result res = object->WaitSynchronization(&wait); if (wait) { + // Set current thread to wait state if handle was not unlocked Kernel::WaitCurrentThread(WAITTYPE_SYNCH); // TODO(bunnei): Is this correct? - Kernel::Reschedule(); + + // Check for next thread to schedule + HLE::Reschedule(__func__); // Context switch - Function blocked, is not actually returning (will be "called" again) @@ -178,7 +181,9 @@ Result WaitSynchronizationN(void* _out, void* _handles, u32 handle_count, u32 wa // Set current thread to wait state if not all handles were unlocked Kernel::WaitCurrentThread(WAITTYPE_SYNCH); // TODO(bunnei): Is this correct? - Kernel::Reschedule(); + + // Check for next thread to schedule + HLE::Reschedule(__func__); // Context switch - Function blocked, is not actually returning (will be "called" again) |