diff options
author | bunnei <bunneidev@gmail.com> | 2019-11-23 19:24:39 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-11-23 19:24:39 +0100 |
commit | 6a3fc5d2ff2732e0392db56b04ff0c4e2c167bf2 (patch) | |
tree | 7d8189083964982abf5e48e3dd8e87e504ca7ab6 /src/core/hle/kernel/kernel.cpp | |
parent | Merge pull request #3141 from ReinUsesLisp/gl-position (diff) | |
parent | Kernel: Optimize condition variable threads management. (diff) | |
download | yuzu-6a3fc5d2ff2732e0392db56b04ff0c4e2c167bf2.tar yuzu-6a3fc5d2ff2732e0392db56b04ff0c4e2c167bf2.tar.gz yuzu-6a3fc5d2ff2732e0392db56b04ff0c4e2c167bf2.tar.bz2 yuzu-6a3fc5d2ff2732e0392db56b04ff0c4e2c167bf2.tar.lz yuzu-6a3fc5d2ff2732e0392db56b04ff0c4e2c167bf2.tar.xz yuzu-6a3fc5d2ff2732e0392db56b04ff0c4e2c167bf2.tar.zst yuzu-6a3fc5d2ff2732e0392db56b04ff0c4e2c167bf2.zip |
Diffstat (limited to 'src/core/hle/kernel/kernel.cpp')
-rw-r--r-- | src/core/hle/kernel/kernel.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/core/hle/kernel/kernel.cpp b/src/core/hle/kernel/kernel.cpp index f94ac150d..9d3b309b3 100644 --- a/src/core/hle/kernel/kernel.cpp +++ b/src/core/hle/kernel/kernel.cpp @@ -64,8 +64,11 @@ static void ThreadWakeupCallback(u64 thread_handle, [[maybe_unused]] s64 cycles_ } else if (thread->GetStatus() == ThreadStatus::WaitMutex || thread->GetStatus() == ThreadStatus::WaitCondVar) { thread->SetMutexWaitAddress(0); - thread->SetCondVarWaitAddress(0); thread->SetWaitHandle(0); + if (thread->GetStatus() == ThreadStatus::WaitCondVar) { + thread->GetOwnerProcess()->RemoveConditionVariableThread(thread); + thread->SetCondVarWaitAddress(0); + } auto* const lock_owner = thread->GetLockOwner(); // Threads waking up by timeout from WaitProcessWideKey do not perform priority inheritance |