summaryrefslogtreecommitdiff
path: root/src/linkgraph
diff options
context:
space:
mode:
Diffstat (limited to 'src/linkgraph')
-rw-r--r--src/linkgraph/linkgraphschedule.cpp6
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()) {