TCP 非阻塞发送的 Short Write 问题: 环形缓冲区 + epoll 事件驱动方案

非阻塞 TCP 发送的 short write 问题在高吞吐嵌入式场景下不可回避。本文从一个 CSDN 环形缓冲方案出发,逐项分析其 5 个工程缺陷 (非 2 幂、无界索引、内存泄漏、部分发送丢失、EAGAIN 误判),给出工程级改进方案: 2 的幂位掩码、精确 acquire-release 内存序、EPOLLOUT 驱动异步刷写,并对比 newosp SpscRingbuffer 的设计取舍。

February 16, 2026 · 9 min · 1854 words · map[name:DeguiLiu]