aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/hle/svc.cpp
diff options
context:
space:
mode:
authorGravatar bunnei <bunneidev@gmail.com>2015-01-20 20:53:52 -0500
committerGravatar bunnei <bunneidev@gmail.com>2015-01-21 20:48:46 -0500
commit68ddaaa2f5726e3619accee77b488ec285f3a2d7 (patch)
treef9d349d09c66efe768fbb4aed67b7b163c3ffec7 /src/core/hle/svc.cpp
parent4255f25647dee3ae6098d14adbb3db0749935120 (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.cpp6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/core/hle/svc.cpp b/src/core/hle/svc.cpp
index f6c91250..89095ac9 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