docs(arch): A-2 + A-6 — async-trait trait family, pinned execution model
Resolves review 001 findings A-2 (critical) and A-6 (major) — the same signature surface: - ADR-012 §1: registry traits amended to #[async_trait] (bare async fn in traits is not dyn-compatible, E0038; ops sit behind Arc<dyn GitRegistryStore>). Desugared boxed Future form pinned in OQ-03's freeze inventory. async-trait = "0.1" added to the manifest. - backend.md concurrency model: the five-trait family is #[async_trait] Send + Sync dyn-compatible; the wire layer enforces ADR-009's pipeline-concurrency budget itself (permit acquired around each GitPackGen/GitPackIngest call — the concrete admission point); impls must not block the async executor and own their internal threading (gix impls run spawn_blocking inside the impl — POC-2's shape restated at its true layer). - transport.md §fetch: spawn_blocking sentence rephrased to the trait-contract version (the wire spec stops speaking gix). - ADR-009: enforcement point of the blocking-pool budget made concrete. - ADR-013 §6: ingestion spawn_blocking line aligned. - review 001: A-2, A-6 marked resolved. Verification: cargo test, clippy -D warnings, fmt --check, doc --no-deps, check --no-default-features, check --all-features — all clean.
This commit is contained in:
1 parent
c4b9c53674
commit
d067cf558a
7 files changed
+55
-15
No files matched your search
@@ -115,7 +115,9 @@ verification of the ingestion composition. Captures are recorded in
|
||||
concurrency budget apply (the generation budget covers ingestion —
|
||||
same `spawn_blocking` pool, amended in ADR-009's table).
|
||||
- Ingestion runs on `spawn_blocking` (POC-2's shape: store shared,
|
||||
handle per session).
|
||||
handle per session — inside the gix impl; the wire layer's
|
||||
pipeline-concurrency permit wraps the trait call per ADR-009,
|
||||
backend.md concurrency model).
|
||||
- fsck/connectivity: `gix-fsck::Connectivity` over the odb handle
|
||||
after indexing, for each new tip reachable from the pushed refs;
|
||||
missing objects → `unpack ng <reason>`.
|
||||
|
||||
Reference in new issue
Block a user