Files
ViperOS/vpsdk
TermiNexus e839b37ee2 fix(desk): 事件环越界 —— 64 槽超出每 pid 0x1000 区间
每 pid 事件环按 0x1000=4096B 间隔排布,而环总大小 = RingCtrl(16) + 64 × DeskMsg(64) = 4112B:第 63 号槽的最后 16 字节正好覆盖下一个 pid 的 RingCtrl(head/tail/size/_pad 被写成消息尾部)。后果:下一个 pid 的环 size=0、head==tail ⇒ 该进程的键盘/鼠标事件永远收不到;再对它 ring_push 会算 (tail+1)%0,除零异常直接打死 explorer —— 这就是'多窗口关闭后容易卡死/键盘无效'的根因之一。改为 63 槽(4048B),落在区间内。
2026-10-17 13:20:22 +08:00
..