diff --git a/.cocoon-plan.md b/.cocoon-plan.md index 075c42d..9e4bb08 100644 --- a/.cocoon-plan.md +++ b/.cocoon-plan.md @@ -11,7 +11,7 @@ - [x] 目录浏览 - [x] Range 请求 - [x] MIME 类型识别 -- [x] 多线程 M:N 调度 +- [x] 多线程 M:N 调度(**有已知问题**:`-t` 模式下主线程不在协程上下文,client_handler 非阻塞 fd busy loop) - [x] 命令行参数 - [x] 优雅关闭 @@ -51,6 +51,8 @@ - **59 项集成测试全部通过**(新增 5 项访问日志测试) - **35 个单元测试全部通过**(Unity 框架) - 压测数据:wrk -t4 -c100 -d10s → 16,179 RPS,平均延迟 59.86μs + - **coco v2.2.0 压测**:wrk -t4 -c100 -d10s → 15,056 RPS,平均延迟 64.49μs(单线程模式,性能在合理范围内) + - 多线程模式(-t -w 4)当前存在连接问题,待排查 - POST 支持:JSON 和 form-urlencoded 回显,multipart 文件上传,Content-Length 解析,8MB 上限 - **配置文件支持**:JSON 格式,9 个字段(含 access_log),命令行参数可覆盖 - **访问日志**:Nginx combined 格式,支持文件路径或 stdout(`-`),线程安全(pthread_mutex),记录 User-Agent / Referer / 状态码 @@ -60,12 +62,20 @@ ## 待办池 -1. **[中] Windows 兼容性** — 平台抽象层(platform.h / platform.c),sendfile 替代方案,io_uring 替代方案 -2. **[中] Doxygen 中文注释** — http2.c 已完成,其余模块(tls.c, config.c, multipart.c 等)待补充 -3. **[低] 检查远程更新内容** — 上游有 new commits,需 review 9041d8d +1. **[高] 多线程模式修复** — `accept_loop` 主线程不在协程上下文中,`client_handler` 在非阻塞 fd 上 busy loop,导致请求无法处理。需让 accept_loop 通过 `coco_go` 在调度器中运行,或使用 `coco_accept` / `poll` 等待 I/O。 +2. **[中] Windows 兼容性** — 平台抽象层(platform.h / platform.c),sendfile 替代方案,io_uring 替代方案 +3. **[中] Doxygen 中文注释** — http2.c 已完成,其余模块(tls.c, config.c, multipart.c 等)待补充 +4. **[已完成] ~~检查远程更新内容~~** — 上游 coco v2.2.0 已 review 并升级(b45045e) ## 最近行动记录 +- **2026-06-05: 本轮行动 — 升级 coco 子模块到 v2.2.0** + - 检查 upstream 新提交:发现 release 2.2.0,包含调度器重大改进 + - 主要更新:负载重分配、热栈迁移槽位释放、调度器停止时状态清理、原子减量修复 + - fast-forward 子模块从 62dbb13 到 b45045e + - 编译通过,零警告(仅 coco linker .note.GNU-stack 提示) + - **59 项集成测试全部通过,127 个单元测试全部通过** + - 推送到 main(d2c6dc3) - **2026-06-05: 本轮行动 — 访问日志(Nginx combined 格式)** - 新增 `access_log.c` / `access_log.h`:Nginx combined 格式访问日志,线程安全(pthread_mutex) - `cocoon.h`:新增 `access_log_path` 配置字段