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 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) { | |||
| 133 | 133 | ||
| 134 | auto lock_owner = thread->lock_owner; | 134 | auto lock_owner = thread->lock_owner; |
| 135 | // Threads waking up by timeout from WaitProcessWideKey do not perform priority inheritance | 135 | // Threads waking up by timeout from WaitProcessWideKey do not perform priority inheritance |
| 136 | // and don't have a lock owner. | 136 | // and don't have a lock owner unless SignalProcessWideKey was called first and the thread |
| 137 | ASSERT(lock_owner == nullptr); | 137 | // wasn't awakened due to the mutex already being acquired. |
| 138 | if (lock_owner) { | ||
| 139 | lock_owner->RemoveMutexWaiter(thread); | ||
| 140 | } | ||
| 138 | } | 141 | } |
| 139 | 142 | ||
| 140 | if (resume) | 143 | if (resume) |