1
0
mirror of https://github.com/Zygo/bees.git synced 2025-05-17 21:35:45 +02:00

roots: use a non-idle task for next_transid

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>
This commit is contained in:
Zygo Blaxell 2025-01-03 01:25:21 -05:00
parent 0d3e13cc5f
commit 58db4071de

View File

@ -130,7 +130,7 @@ BeesScanMode::start_scan()
st->scan(); st->scan();
}); });
} }
m_scan_task.idle(); m_scan_task.run();
} }
bool bool
@ -768,7 +768,7 @@ BeesScanModeExtent::scan()
// Good to go, start everything running // Good to go, start everything running
for (const auto &i : task_map_copy) { for (const auto &i : task_map_copy) {
i.second.idle(); i.second.run();
} }
} }
@ -901,7 +901,7 @@ BeesScanModeExtent::map_next_extent(uint64_t const subvol)
<< " time " << crawl_time << " subvol " << subvol); << " 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(); Task::current_task().idle();
return; return;
} }