修复E-03:s_net_errno 改按任务隔离槽位,消除跨任务错误码错报
This commit is contained in:
+1
-1
@@ -27,4 +27,4 @@
|
||||
| # | 事项 | 说明 | 出处 |
|
||||
|---|---|---|---|
|
||||
| N-4 | **pending 机制二期:ACCEPT + SEND 阻塞路径 pending 化**——E-06(accept 轮询计时失真)、E-20(lftpd 控制通道 errno 分类/501)、E-21(timeSync errno 分级)剩余分量共用该机制扩展;届时 L3/L5 基线再重锁、探针族扩充(close/reconfig/EOF/disconnect-during-pending)、看门狗接 selftest 留痕、模拟器差距清单 +1 | 一期(RECV)已落地:`f16dc9a`;设计基线与门禁结果见 `docs/问题记录/Net层阻塞模型业界对照与演进方案.md` §6.7 | 同左 + `错误码传播审计.md` 第二档 #1 |
|
||||
| N-5 | E-03(`s_net_errno` 跨任务覆写竞态)——pending 化不改变 errno 通道现状;与 N-4 二期或独立小修(错误码经通知值直回,包装器去全局) | 既有 P1 | `错误码传播审计.md` E-03 |
|
||||
| N-5 | **✅ 已修复(2026-09-25):E-03 `s_net_errno` 跨任务覆写竞态**——采取"**按任务隔离**"路线(而非二期 pending 化):删除全局 `s_net_errno`,改为 `s_net_errno_slots[8]`(每槽 `{任务句柄, err}`);`net_errno_slot()` 无锁快路径只读命中本任务槽、首次占用在 `taskENTER_CRITICAL` 内复查(槽位用尽回退 [0] 槽,**不新增共享槽**以免把竞态带回来);`net_set_errno()` 取代全部赋值、`NET_ERR_RETURN_1()` 宏合并"记码+return -1"共 82 处;`net_get_errno()` 改读本任务槽位、**对外语义不变**(成功不清零)。构建 0 错 0 警 + cppcheck 无告警 + `git diff --check` 干净 + 编码无 `U+FFFD`,BSS +64B。**残留台架项**:本机 COM6 未枚举(ST-Link 虚拟串口不在)→ 硬件闭环回归待补(`错误码传播审计.md` §3.1 E-03 / 页脚) | 2026-09-25 修复 | `错误码传播审计.md` E-03;`Drivers/BSP/NET/net_socket.c`(`net_errno_slot` / `net_set_errno` / `net_get_errno`) |
|
||||
|
||||
+527
-477
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user