Browse Source

kernel/mutex: Amend behavior of TransferMutexOwnership()

This was the result of a typo accidentally introduced in
b355b43bfa. This restores the previous
correct behavior.

The behavior with the reference was incorrect and would cause some games
to fail to boot.
nce_cpp
Lioncash 7 years ago
parent
commit
809edc848f
  1. 2
      src/core/hle/kernel/mutex.cpp

2
src/core/hle/kernel/mutex.cpp

@ -47,7 +47,7 @@ static std::pair<SharedPtr<Thread>, u32> GetHighestPriorityMutexWaitingThread(
/// Update the mutex owner field of all threads waiting on the mutex to point to the new owner. /// Update the mutex owner field of all threads waiting on the mutex to point to the new owner.
static void TransferMutexOwnership(VAddr mutex_addr, SharedPtr<Thread> current_thread, static void TransferMutexOwnership(VAddr mutex_addr, SharedPtr<Thread> current_thread,
SharedPtr<Thread> new_owner) { SharedPtr<Thread> new_owner) {
const auto& threads = current_thread->GetMutexWaitingThreads();
const auto threads = current_thread->GetMutexWaitingThreads();
for (const auto& thread : threads) { for (const auto& thread : threads) {
if (thread->GetMutexWaitAddress() != mutex_addr) if (thread->GetMutexWaitAddress() != mutex_addr)
continue; continue;

Loading…
Cancel
Save