diff options
| author | 2016-05-22 20:07:20 -0400 | |
|---|---|---|
| committer | 2016-05-22 20:07:20 -0400 | |
| commit | e054e55ca2fe06be6608a6d3fa781ce292bc1781 (patch) | |
| tree | ad35c96413b1baa4e2a4a00b9fd5e8f81567a4ef | |
| parent | Appveyor: Restore working directory after test_script (#1835) (diff) | |
| parent | SVC::WaitSynchronizationN: Reschedule at the end (diff) | |
| download | yuzu-e054e55ca2fe06be6608a6d3fa781ce292bc1781.tar.gz yuzu-e054e55ca2fe06be6608a6d3fa781ce292bc1781.tar.xz yuzu-e054e55ca2fe06be6608a6d3fa781ce292bc1781.zip | |
Merge pull request #1837 from wwylele/sync-trap
SVC::WaitSynchronizationN: Reschedule at the end
| -rw-r--r-- | src/core/hle/svc.cpp | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/core/hle/svc.cpp b/src/core/hle/svc.cpp index 2bf122a6d..0ce72de87 100644 --- a/src/core/hle/svc.cpp +++ b/src/core/hle/svc.cpp | |||
| @@ -6,6 +6,7 @@ | |||
| 6 | 6 | ||
| 7 | #include "common/logging/log.h" | 7 | #include "common/logging/log.h" |
| 8 | #include "common/microprofile.h" | 8 | #include "common/microprofile.h" |
| 9 | #include "common/scope_exit.h" | ||
| 9 | #include "common/string_util.h" | 10 | #include "common/string_util.h" |
| 10 | #include "common/symbols.h" | 11 | #include "common/symbols.h" |
| 11 | 12 | ||
| @@ -326,9 +327,9 @@ static ResultCode WaitSynchronizationN(s32* out, Handle* handles, s32 handle_cou | |||
| 326 | } | 327 | } |
| 327 | } | 328 | } |
| 328 | 329 | ||
| 329 | HLE::Reschedule(__func__); | 330 | SCOPE_EXIT({HLE::Reschedule("WaitSynchronizationN");}); // Reschedule after putting the threads to sleep. |
| 330 | 331 | ||
| 331 | // If thread should wait, then set its state to waiting and then reschedule... | 332 | // If thread should wait, then set its state to waiting |
| 332 | if (wait_thread) { | 333 | if (wait_thread) { |
| 333 | 334 | ||
| 334 | // Actually wait the current thread on each object if we decided to wait... | 335 | // Actually wait the current thread on each object if we decided to wait... |