diff options
author | bunnei <bunneidev@gmail.com> | 2018-06-03 17:15:49 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-06-03 17:15:49 +0200 |
commit | 63270e588b23d44b5a4d780b3d838d1755259a77 (patch) | |
tree | e7a8e0de6505d5bf809f154f4825eb6668a9d4b0 /src | |
parent | Merge pull request #497 from Subv/dxn1 (diff) | |
parent | Kernel/Threads: A thread waking up by timeout from a WaitProcessWideKey may already have an assigned lock owner. (diff) | |
download | yuzu-63270e588b23d44b5a4d780b3d838d1755259a77.tar yuzu-63270e588b23d44b5a4d780b3d838d1755259a77.tar.gz yuzu-63270e588b23d44b5a4d780b3d838d1755259a77.tar.bz2 yuzu-63270e588b23d44b5a4d780b3d838d1755259a77.tar.lz yuzu-63270e588b23d44b5a4d780b3d838d1755259a77.tar.xz yuzu-63270e588b23d44b5a4d780b3d838d1755259a77.tar.zst yuzu-63270e588b23d44b5a4d780b3d838d1755259a77.zip |
Diffstat (limited to 'src')
-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 0075e4a0f..cffa7ca83 100644 --- a/src/core/hle/kernel/thread.cpp +++ b/src/core/hle/kernel/thread.cpp @@ -133,8 +133,11 @@ static void ThreadWakeupCallback(u64 thread_handle, int cycles_late) { auto lock_owner = thread->lock_owner; // Threads waking up by timeout from WaitProcessWideKey do not perform priority inheritance - // and don't have a lock owner. - ASSERT(lock_owner == nullptr); + // and don't have a lock owner unless SignalProcessWideKey was called first and the thread + // wasn't awakened due to the mutex already being acquired. + if (lock_owner) { + lock_owner->RemoveMutexWaiter(thread); + } } if (resume) |