ExitStack+finalize 重构 renderer 关闭,保幂等与 GC 兜底
值得精读,但注意这是「小改动、高讨论密度」的典型:单文件 25 行变更背后是 11 个 commit、13 条 review 评论与 3 轮 bug 循环。阅读重点有 3 个:(1)`ExitStack.close()` 的幂等语义与 `weakref.finalize` 的正确姿势(func 不能是 obj 的 bound method,args 也不能携带 obj);(2) `callback(executor.shutdown, wait=False)` 与 `enter_context(executor)` 在关闭语义上的差异,这是非常容易被忽略的性能/行为陷阱;(3) 自动化 review(claude[bot])在递归 review 中连续发现真实回归的过程,说明资源生命周期代码值得多轮审查。对后续维护者的行动建议:为 shutdown 幂等性与 GC 兜底补充测试,并在合适时机处理 `engine_client.shutdown` 双重调用的根因。
参与讨论