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 原样不动