diff options
Diffstat (limited to 'src/core/hle/kernel/thread.cpp')
| -rw-r--r-- | src/core/hle/kernel/thread.cpp | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/src/core/hle/kernel/thread.cpp b/src/core/hle/kernel/thread.cpp index 962530d2d..538e47992 100644 --- a/src/core/hle/kernel/thread.cpp +++ b/src/core/hle/kernel/thread.cpp | |||
| @@ -132,8 +132,11 @@ void Thread::ResumeFromWait() { | |||
| 132 | } | 132 | } |
| 133 | 133 | ||
| 134 | void Thread::CancelWait() { | 134 | void Thread::CancelWait() { |
| 135 | ASSERT(GetStatus() == ThreadStatus::WaitSynch); | 135 | if (GetSchedulingStatus() != ThreadSchedStatus::Paused) { |
| 136 | ClearWaitObjects(); | 136 | is_sync_cancelled = true; |
| 137 | return; | ||
| 138 | } | ||
| 139 | is_sync_cancelled = false; | ||
| 137 | SetWaitSynchronizationResult(ERR_SYNCHRONIZATION_CANCELED); | 140 | SetWaitSynchronizationResult(ERR_SYNCHRONIZATION_CANCELED); |
| 138 | ResumeFromWait(); | 141 | ResumeFromWait(); |
| 139 | } | 142 | } |