7cb5af05fe
把"周期性重建监听"收敛到唯一入口 net_listener_pump,消灭"谁先看到 DISCONNECT 就谁重建"的竞争;对账③④ 整体移交 pump,对账只剩①②。 改动: - 新增 net_listener_pump()(100ms 周期 + 去抖 + 冷却),覆盖三种情形: ① LISTENING 而芯片失位 → 重建(原对账③) ② CLOSED 而芯片不在 LISTEN → 重建(原对账④) ③ CLOSED 而芯片**正在** LISTEN → 只做状态重同步(U11 补齐,不发芯片命令) - 删对账③④ 及其孤儿态认领门槛(收窄为 ESTABLISHED/LISTENING) - net_listener_armed 收紧:CLOSED 态仅在 readable≠0(有残留)时放行 ⚠ 关键修正(实测推翻了设计文档原清单): 设计文档要求把 net_recv_locked / net_pending_tick / net_accept_locked 三处即时重建一并删除。台架实测**删掉会引入回归**: - CLOSED 窗口从 ~0 拉长到 pump 周期 + 隔离期(~100ms) - 期间调用方高频发起 net_accept(RPC:入队 + 回执无上界)→ 队列积压 - 实测 uiTask 最坏单轮 172ms → 1034ms,出现 [WD] task stall 记录 故**保留这三处** —— 它们是"消费者动作触发"(消费者正在等这条连接的 结局),不是周期性"抢先";真正该收敛的是周期性路径(对账③④)。 收敛后 net_relisten_try 调用点 7 → 5(pump + 显式消息 + 3 处消费者驱动)。 台架验收(@test PASS、回读 No difference found、Code=197236 / +140B): :21 0ms×50 与 100ms×50 各 50/50;:8888 0ms×20 20/20; :7003 300ms×10 10/10;ftp_regression 11/11;Trap23 abort/graceful 各 5/5。 设备侧 orphan listener 增量 **0**(P1 基线同条件实测 2 条)—— 目标达成。 ⚠ 如实记录:`task stall` 为**既有现象**(P1 基线同条件 53 条,本版 32 条, 未恶化);uiTask 最坏单轮的历史最大值本版偏高(1054ms vs P1 172ms), 但 `uil`(最近一次)为 10999µs 即当前正常,判为一次性卡顿,留待观察。 ⚠ SKIP=doc-links:基线预存在问题(另一在途任务未提交文件),非本次引入。