Browse Source

Merge pull request #1869 from wwylele/dont-be-lazy

Switch context to the same thread if necessary
pull/15/merge
Yuri Kunde Schlesner 10 years ago
committed by GitHub
parent
commit
de79b6fc48
  1. 8
      src/core/hle/kernel/thread.cpp

8
src/core/hle/kernel/thread.cpp

@ -591,8 +591,12 @@ void Reschedule() {
HLE::DoneRescheduling(); HLE::DoneRescheduling();
// Don't bother switching to the same thread
if (next == cur)
// Don't bother switching to the same thread.
// But if the thread was waiting on objects, we still need to switch it
// to perform PC modification, change state to RUNNING, etc.
// This occurs in the case when an object the thread is waiting on immediately wakes up
// the current thread before Reschedule() is called.
if (next == cur && (next == nullptr || next->waitsynch_waited == false))
return; return;
if (cur && next) { if (cur && next) {

Loading…
Cancel
Save