Vista generada de dec-0052: Block buffer
docs/decisions/dec-0052-block-buffer.mdVista generada desde
docs/decisions/dec-0052-block-buffer.md. No se edita a mano:bun run docs:genla regenera ybun run docs:checkfalla si difiere. El estado aquí es el del model: si discrepa con otra página, manda el model.
| Campo | Valor |
|---|---|
| Estado | LOCKED (migrado de un rNN por gate-3: el fichero no declara estado) |
| Referencia legada | r40-L1 |
| Fichero | docs/decisions/dec-0052-block-buffer.md |
Enmendado o sustituido por: r46, r60, r61
Por qué importa (del frontmatter del ADR):
Código real, no solo cross-cita: native/zig/media-core/source/buffer/zero_copy_buffer.zig implementa exactamente esto (docstring cita 'r40 / TKT-016 M1' línea 1-2, 'BACKING_ALIGN r40 §1' línea 32). Usado en 19 archivos: l1_ram.zig, l2_nvmc.zig, tiered_cache.zig, local_file.zig, cache_soak.zig, quiczig_transport.zig, moqt_publisher/relay/server/subscriber/types/test.zig.
Nodos del roadmap que lo citan en refs: ninguno.
Páginas de la documentación que lo citan: ninguna todavía.
Leído de docs/decisions/dec-0052-block-buffer.md, el fichero canónico.
Block buffer: single-allocation page-aligned + refcount atómico + zero-copy fanout (TAKE from MoQ FrameBuf)
Arc<FrameBufInner>-style o punteros Zig con refcount atómico NO inferiría POR QUÉ se eligió este patrón específico sin el contexto del harvest MoQ y la comparación explícita con MediaMTX (closure Go vs refcount atómico). Parecería un overengineering sin el ADR.Split de docs/decisions/r40-scheduler-cache-mechanics-harvest-2026-06-30.md (lock r40-L1) durante PASO 7 (2026-07-16). Ver el fichero padre para el contexto completo del pack original.