AskaEth
44c25eb03b
refactor(memory): 到期清扫挂点从 wait 注入缝改为 TidyService.Start
塔裁定:清扫不许挂在注入缝上 —— 包一层 s.wait 会让「清扫是否存活」依赖于
「loop 每一轮都调 s.wait」这个**没有任何契约固定**的假设;将来谁换了等待原语、
或把循环改成 select + 自己的 timer,清扫会**静默消失**(不报错、不红测试,
只是临时期限再也删不掉)。后台件起在 Start 里,读者一眼看到它们同生共死。
- tidy_service.go:Start 里紧跟 go s.loop(cctx) 起 go s.expirySweepLoop(cctx),
wg 计数与既有那一笔同处(同一把锁内加,避免 Add 与 Stop 的 wg.Wait 相撞)。
`if !s.cfg.Enabled { … return }` 仍在其前 ⇒ 语义与改动前逐字相同:整理被关掉
⇒ 清扫不跑(与 preinsert_gc 随审查服务启停同口径)。
- expire_loop.go:删掉 AttachExpirySweep 与对 s.wait 的包裹;文件头写明
「挂点必须是 Start 里那处显式的 go」,防止后人改回注入缝。
- expire_loop_test.go:那条运行时对照改写成 TestTidyServiceStart_清扫随服务起停
—— 真 Start、真 Stop(Stop 不超时即证明清扫随 ctx 退出且登记在同一个 wg)。
- wire_memory_tidy.go:去掉组合根的挂载调用,注释改成「起在 Start 里,组合根零接线」。
- wire_memory_tidy_test.go:把 go s.expirySweepLoop(cctx) 钉进 TestMemoryTidyIsWired
的 seams(摘掉那一行 ⇒ 用例红,已实测)。
2026-10-13 21:43:27 +08:00
..
2026-09-05 23:09:26 +08:00
2026-10-04 13:58:18 +08:00
2026-10-05 12:53:17 +08:00
2026-10-05 13:50:29 +08:00
2026-10-05 13:50:29 +08:00
2026-09-30 08:51:38 +08:00
2026-10-04 16:58:06 +08:00
2026-10-03 16:55:22 +08:00
2026-10-03 20:12:29 +08:00
2026-10-04 16:58:06 +08:00
2026-10-06 08:04:12 +08:00
2026-10-04 16:58:06 +08:00
2026-10-04 16:39:33 +08:00
2026-10-04 16:39:33 +08:00
2026-10-03 15:22:03 +08:00
2026-10-04 16:58:06 +08:00
2026-10-04 16:58:06 +08:00
2026-10-03 20:12:29 +08:00
2026-10-04 19:15:12 +08:00
2026-10-04 14:30:26 +08:00
2026-10-03 19:54:22 +08:00
2026-10-04 16:58:06 +08:00
2026-09-08 23:20:12 +08:00
2026-10-04 16:58:06 +08:00
2026-10-03 21:33:40 +08:00
2026-10-04 16:58:06 +08:00
2026-10-06 18:46:58 +08:00
2026-10-04 16:58:06 +08:00
2026-10-04 11:30:39 +08:00
2026-10-04 16:58:06 +08:00
2026-10-04 16:58:06 +08:00
2026-10-04 16:58:06 +08:00
2026-10-04 16:58:06 +08:00
2026-10-07 11:10:56 +08:00
2026-10-06 14:12:23 +08:00
2026-10-07 11:10:56 +08:00
2026-10-07 13:42:41 +08:00
2026-10-06 14:12:23 +08:00
2026-10-07 13:42:41 +08:00
2026-10-07 13:42:41 +08:00
2026-10-06 15:59:12 +08:00
2026-10-06 15:59:12 +08:00
2026-10-07 09:56:37 +08:00
2026-10-07 11:10:56 +08:00
2026-10-06 15:59:12 +08:00
2026-10-05 12:12:31 +08:00
2026-10-05 12:12:31 +08:00
2026-10-07 10:37:33 +08:00
2026-10-07 10:37:33 +08:00
2026-10-07 09:34:44 +08:00
2026-10-06 21:48:50 +08:00
2026-10-06 20:25:16 +08:00
2026-10-07 11:18:25 +08:00
2026-10-06 21:48:50 +08:00
2026-10-06 21:48:50 +08:00
2026-10-06 21:48:50 +08:00
2026-10-06 21:16:23 +08:00
2026-10-06 21:48:50 +08:00
2026-10-05 13:54:57 +08:00
2026-10-05 13:54:57 +08:00
2026-10-04 12:49:40 +08:00
2026-10-04 13:07:52 +08:00
2026-10-04 16:58:06 +08:00
2026-10-05 14:10:24 +08:00
2026-10-05 16:19:32 +08:00
2026-10-04 12:07:40 +08:00
2026-10-04 19:25:00 +08:00
2026-10-06 15:59:14 +08:00
2026-10-13 20:48:05 +08:00
2026-10-04 19:15:12 +08:00
2026-10-04 17:57:08 +08:00
2026-10-04 17:57:08 +08:00
2026-10-04 21:01:30 +08:00
2026-10-04 21:01:30 +08:00
2026-10-05 16:19:32 +08:00
2026-10-05 16:19:32 +08:00
2026-10-04 19:55:18 +08:00
2026-10-07 09:34:44 +08:00
2026-10-04 19:41:44 +08:00
2026-10-04 19:41:44 +08:00
2026-10-04 19:15:12 +08:00
2026-10-04 19:41:44 +08:00
2026-10-07 10:18:58 +08:00
2026-10-13 20:26:46 +08:00
2026-10-13 20:22:48 +08:00
2026-10-07 20:38:37 +08:00
2026-10-13 21:43:27 +08:00
2026-10-13 21:43:27 +08:00
2026-10-06 09:03:57 +08:00
2026-10-07 10:08:19 +08:00
2026-10-07 11:10:56 +08:00
2026-10-05 15:38:53 +08:00
2026-10-07 09:59:56 +08:00
2026-10-06 21:16:23 +08:00
2026-09-07 13:43:18 +08:00
2026-10-05 13:23:52 +08:00
2026-10-05 13:23:52 +08:00
2026-10-04 22:16:26 +08:00
2026-10-04 22:16:26 +08:00
2026-10-07 13:42:41 +08:00
2026-10-07 13:42:41 +08:00
2026-10-06 09:04:04 +08:00
2026-10-06 08:04:12 +08:00