diff options
Diffstat (limited to 'src/linkgraph')
-rw-r--r-- | src/linkgraph/linkgraphschedule.cpp | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/linkgraph/linkgraphschedule.cpp b/src/linkgraph/linkgraphschedule.cpp index f056d7cfc..b3e6fac2f 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()) { |