summaryrefslogtreecommitdiffstats
path: root/src/core/hle/kernel/thread.cpp
diff options
context:
space:
mode:
authorFernando Sahmkow <fsahmkow27@gmail.com>2020-03-07 15:24:46 +0100
committerFernando Sahmkow <fsahmkow27@gmail.com>2020-06-27 17:35:33 +0200
commita66c61ca2de61e3a46fa857cf8afea359b2fb8eb (patch)
tree7ed933638efc1a292fd452fbb2935042be7ec5e3 /src/core/hle/kernel/thread.cpp
parentScheduler: Correct locking for hle threads. (diff)
downloadyuzu-a66c61ca2de61e3a46fa857cf8afea359b2fb8eb.tar
yuzu-a66c61ca2de61e3a46fa857cf8afea359b2fb8eb.tar.gz
yuzu-a66c61ca2de61e3a46fa857cf8afea359b2fb8eb.tar.bz2
yuzu-a66c61ca2de61e3a46fa857cf8afea359b2fb8eb.tar.lz
yuzu-a66c61ca2de61e3a46fa857cf8afea359b2fb8eb.tar.xz
yuzu-a66c61ca2de61e3a46fa857cf8afea359b2fb8eb.tar.zst
yuzu-a66c61ca2de61e3a46fa857cf8afea359b2fb8eb.zip
Diffstat (limited to '')
-rw-r--r--src/core/hle/kernel/thread.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/core/hle/kernel/thread.cpp b/src/core/hle/kernel/thread.cpp
index fb1751860..e8962a0d8 100644
--- a/src/core/hle/kernel/thread.cpp
+++ b/src/core/hle/kernel/thread.cpp
@@ -139,13 +139,14 @@ ResultCode Thread::Start() {
void Thread::CancelWait() {
SchedulerLock lock(kernel);
- if (GetSchedulingStatus() != ThreadSchedStatus::Paused) {
+ if (GetSchedulingStatus() != ThreadSchedStatus::Paused || !is_waiting_on_sync) {
is_sync_cancelled = true;
return;
}
+ //TODO(Blinkhawk): Implement cancel of server session
is_sync_cancelled = false;
SetSynchronizationResults(nullptr, ERR_SYNCHRONIZATION_CANCELED);
- ResumeFromWait();
+ SetStatus(ThreadStatus::Ready);
}
static void ResetThreadContext32(Core::ARM_Interface::ThreadContext32& context, u32 stack_top,