fix: reports hold the data trees they read

generate_readme, generate_site and slots resolve against data/ but took no hold when run on their own, as the documented commands do. A refresh swapping a tree mid-read then gave counts from half of it. Each now holds the trees shared, like verify and the builder.
This commit is contained in:
Abdessamad Derraz committed 2026-10-20 00:32:26 +02:00
1 parent aea67e998f
commit 7e23815545
4 files changed
+50 -2

No files matched your search

+8 -1
View File
@@ -4395,7 +4395,14 @@ def main() -> None:
try:
# Two runs over one docs/ delete each other's pages and scratch
# files in the sweep, so the second is refused instead.
with artifact_lock(args.docs_dir):
import contextlib
from common import load_data_dir_registry
from refresh_data_dirs import hold_data_dirs
# The coverage pages resolve against data/, held while they are read.
with artifact_lock(args.docs_dir), contextlib.ExitStack() as held:
hold_data_dirs(held, load_data_dir_registry(args.platforms_dir))
_generate(args)
except ArtifactLockBusy as exc:
print(f"ERROR: {exc}", file=sys.stderr)