diff options
author | bunnei <bunneidev@gmail.com> | 2015-01-20 20:53:52 -0500 |
---|---|---|
committer | bunnei <bunneidev@gmail.com> | 2015-01-21 20:48:46 -0500 |
commit | 68ddaaa2f5726e3619accee77b488ec285f3a2d7 (patch) | |
tree | f9d349d09c66efe768fbb4aed67b7b163c3ffec7 /src/core/hle/svc.cpp | |
parent | 4255f25647dee3ae6098d14adbb3db0749935120 (diff) |
Thread: Fix WaitSynchronization1 to not set register 1 on thread wakeup.
Diffstat (limited to 'src/core/hle/svc.cpp')
-rw-r--r-- | src/core/hle/svc.cpp | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/core/hle/svc.cpp b/src/core/hle/svc.cpp index f6c912502..89095ac91 100644 --- a/src/core/hle/svc.cpp +++ b/src/core/hle/svc.cpp @@ -126,7 +126,7 @@ static Result WaitSynchronization1(Handle handle, s64 nano_seconds) { if (object->ShouldWait()) { object->AddWaitingThread(Kernel::GetCurrentThread()); - Kernel::WaitCurrentThread_WaitSynchronization(object); + Kernel::WaitCurrentThread_WaitSynchronization(object, false, false); // Create an event to wake the thread up after the specified nanosecond delay has passed Kernel::WakeThreadAfterDelay(Kernel::GetCurrentThread(), nano_seconds); @@ -187,7 +187,7 @@ static Result WaitSynchronizationN(s32* out, Handle* handles, s32 handle_count, // NOTE: This should deadlock the current thread if no timeout was specified if (!wait_all) { wait_thread = true; - Kernel::WaitCurrentThread_Sleep(); + Kernel::WaitCurrentThread_WaitSynchronization(nullptr, true, wait_all); } } @@ -198,7 +198,7 @@ static Result WaitSynchronizationN(s32* out, Handle* handles, s32 handle_count, for (int i = 0; i < handle_count; ++i) { auto object = Kernel::g_handle_table.GetWaitObject(handles[i]); object->AddWaitingThread(Kernel::GetCurrentThread()); - Kernel::WaitCurrentThread_WaitSynchronization(object, wait_all); + Kernel::WaitCurrentThread_WaitSynchronization(object, true, wait_all); } // Create an event to wake the thread up after the specified nanosecond delay has passed |