From ab9250281b37a6edb1d442f83759587127004000 Mon Sep 17 00:00:00 2001 From: Swung0x48 Date: Thu, 17 Sep 2026 11:21:39 -0400 Subject: [PATCH] [Docs, MG_Backend] (Disaggregated): P5c housekeeping - the death-switch scope comment describes the landed ct shape (the NoSession arm only), and the README counts 79 calls after ct/rv --- MobileGL/MG_Backend/DirectGLES/Managers.cpp | 10 +++++----- docs/Disaggregated/README.md | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/MobileGL/MG_Backend/DirectGLES/Managers.cpp b/MobileGL/MG_Backend/DirectGLES/Managers.cpp index 606a2577..03a8a7a0 100644 --- a/MobileGL/MG_Backend/DirectGLES/Managers.cpp +++ b/MobileGL/MG_Backend/DirectGLES/Managers.cpp @@ -248,11 +248,11 @@ namespace MobileGL::MG_Backend::DirectGLES { }, &death); return; } - // P5c merge coordination: while the death notice still rides the mailbox it lands - // HERE, on the apply thread, and every arm's DestroyByLifetimeId probes the client - // allocator. That hop is exactly what ct's object_death record replaces (the sink - // then resolves by the record's handle and the scope dies with the mailbox); until - // ct lands the probes are named debt inside the G6 scope, not unwrapped violations. + // P5c merge coordination: the record arm above carries every death a real split + // sees; what still lands HERE through the mailbox is the NoSession server-only + // fixture arm, whose DestroyByLifetimeId probes the client allocator from the + // apply thread. Those probes ride inside the G6 scope (CONTRACT-P5C §5.2, the + // amended ruling) - named debt that dies with the mailbox hop. const MG_Pipe::MGPipeFrontendKeyedRegistryScope frontendKeyedRegistry; #endif switch (kind) { diff --git a/docs/Disaggregated/README.md b/docs/Disaggregated/README.md index 8a2864b3..a880eb73 100644 --- a/docs/Disaggregated/README.md +++ b/docs/Disaggregated/README.md @@ -16,7 +16,7 @@ MGPipe 是 MobileGL 前端(`MG_State` + `MG_Impl`)与后端(`MG_Backend` 应用 GL 调用 → MG_Impl(GL 语义、错误、shadow) → MG_Impl/Pipe/Tracker:在每条 verb 之前 validate,把变化推成 MGPipe 调用 - → MGPipeScreen / MGPipeContext(两张函数指针表,76 条调用,单一真相源 PipeCalls.def) + → MGPipeScreen / MGPipeContext(两张函数指针表,79 条调用,单一真相源 PipeCalls.def) monolith:直调 backend 函数 split:发射器写 SEG_CMD ring → server applier(apply 线程) → server 对象表(按 {slot, gen} 句柄索引的数组)+ PipeInputs(后端被推送的状态块) → MG_Backend(Espryt / Magma),两个后端的 ring / pool / memo / lowering pass 原样不动