diff --git a/src/linkgraph/linkgraphschedule.cpp b/src/linkgraph/linkgraphschedule.cpp index f056d7cfcd..b3e6fac2fb 100644 --- a/src/linkgraph/linkgraphschedule.cpp +++ b/src/linkgraph/linkgraphschedule.cpp @@ -57,6 +57,12 @@ void LinkGraphSchedule::SpawnNext() { if (this->schedule.empty()) return; LinkGraph *next = this->schedule.front(); + LinkGraph *first = next; + while (next->Size() < 2) { + this->schedule.splice(this->schedule.end(), this->schedule, this->schedule.begin()); + next = this->schedule.front(); + if (next == first) return; + } assert(next == LinkGraph::Get(next->index)); this->schedule.pop_front(); if (LinkGraphJob::CanAllocateItem()) {