Merge pull request #2410 from Subv/sleepthread

Don't yield execution in SleepThread(0) if there are no available threads to run
This commit is contained in:
bunnei 2017-01-06 22:01:33 -05:00 committed by GitHub
commit b5eac78b43
3 changed files with 14 additions and 0 deletions

View file

@ -508,6 +508,10 @@ SharedPtr<Thread> SetupMainThread(u32 entry_point, s32 priority) {
return thread;
}
bool HaveReadyThreads() {
return ready_queue.get_first() != nullptr;
}
void Reschedule() {
Thread* cur = GetCurrentThread();
Thread* next = PopNextReadyThread();

View file

@ -218,6 +218,11 @@ private:
*/
SharedPtr<Thread> SetupMainThread(u32 entry_point, s32 priority);
/**
* Returns whether there are any threads that are ready to run.
*/
bool HaveReadyThreads();
/**
* Reschedules to the next available thread (call after current thread is suspended)
*/