Explorar o código

Merge pull request #456 from Subv/waitsync1

SVC: Wake up the thread after the delay in WaitSync1
bunnei %!s(int64=11) %!d(string=hai) anos
pai
achega
b33380ca59
Modificáronse 1 ficheiros con 2 adicións e 3 borrados
  1. 2 3
      src/core/hle/svc.cpp

+ 2 - 3
src/core/hle/svc.cpp

@@ -120,9 +120,6 @@ static Result CloseHandle(Handle handle) {
 
 /// Wait for a handle to synchronize, timeout after the specified nanoseconds
 static Result WaitSynchronization1(Handle handle, s64 nano_seconds) {
-    // TODO(bunnei): Do something with nano_seconds, currently ignoring this
-    bool wait_infinite = (nano_seconds == -1); // Used to wait until a thread has terminated
-
     SharedPtr<Kernel::Object> object = Kernel::g_handle_table.GetGeneric(handle);
     if (object == nullptr)
         return InvalidHandle(ErrorModule::Kernel).raw;
@@ -134,6 +131,8 @@ static Result WaitSynchronization1(Handle handle, s64 nano_seconds) {
 
     // Check for next thread to schedule
     if (wait.Succeeded() && *wait) {
+        // Create an event to wake the thread up after the specified nanosecond delay has passed
+        Kernel::WakeThreadAfterDelay(Kernel::GetCurrentThread(), nano_seconds);
         HLE::Reschedule(__func__);
     }