The scanners which finish early can become stuck behind scanners that are
able to keep the queue full. Switch the next_transid task to the normal
Task queues so that we force scanners to restart on every new transaction,
possibly deferring already queued work to do so.
Signed-off-by: Zygo Blaxell <bees@furryterror.org>
st->scan();
});
}
- m_scan_task.idle();
+ m_scan_task.run();
}
bool
// Good to go, start everything running
for (const auto &i : task_map_copy) {
- i.second.idle();
+ i.second.run();
}
}
<< " time " << crawl_time << " subvol " << subvol);
}
- // We did something! Get in line to run again
+ // We did something! Get in line to run again (but don't preempt work already queued)
Task::current_task().idle();
return;
}