|
|
|
@ -50,17 +50,8 @@ std::shared_ptr<Thread> WaitObject::GetHighestPriorityReadyThread() const {
|
|
|
|
|
if (ShouldWait(thread.get()))
|
|
|
|
|
continue;
|
|
|
|
|
|
|
|
|
|
// A thread is ready to run if it's either in ThreadStatus::WaitSynch
|
|
|
|
|
// and the rest of the objects it is waiting on are ready.
|
|
|
|
|
bool ready_to_run = true;
|
|
|
|
|
if (thread_status == ThreadStatus::WaitSynch) {
|
|
|
|
|
ready_to_run = thread->AllWaitObjectsReady();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (ready_to_run) {
|
|
|
|
|
candidate = thread.get();
|
|
|
|
|
candidate_priority = thread->GetPriority();
|
|
|
|
|
}
|
|
|
|
|
candidate = thread.get();
|
|
|
|
|
candidate_priority = thread->GetPriority();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return SharedFrom(candidate);
|
|
|
|
|