Просмотр исходного кода

Merge pull request #1837 from wwylele/sync-trap

SVC::WaitSynchronizationN: Reschedule at the end
bunnei 10 лет назад
Родитель
Сommit
e054e55ca2
1 измененных файлов с 3 добавлено и 2 удалено
  1. 3 2
      src/core/hle/svc.cpp

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

@@ -6,6 +6,7 @@
 
 
 #include "common/logging/log.h"
 #include "common/logging/log.h"
 #include "common/microprofile.h"
 #include "common/microprofile.h"
+#include "common/scope_exit.h"
 #include "common/string_util.h"
 #include "common/string_util.h"
 #include "common/symbols.h"
 #include "common/symbols.h"
 
 
@@ -326,9 +327,9 @@ static ResultCode WaitSynchronizationN(s32* out, Handle* handles, s32 handle_cou
         }
         }
     }
     }
 
 
-    HLE::Reschedule(__func__);
+    SCOPE_EXIT({HLE::Reschedule("WaitSynchronizationN");}); // Reschedule after putting the threads to sleep.
 
 
-    // If thread should wait, then set its state to waiting and then reschedule...
+    // If thread should wait, then set its state to waiting
     if (wait_thread) {
     if (wait_thread) {
 
 
         // Actually wait the current thread on each object if we decided to wait...
         // Actually wait the current thread on each object if we decided to wait...