-
Notifications
You must be signed in to change notification settings - Fork 9
Comparing changes
Open a pull request
base repository: Hical61/Hical
base: v2.6.0
head repository: Hical61/Hical
compare: v2.6.1
- 12 commits
- 46 files changed
- 1 contributor
Commits on May 12, 2026
-
Configuration menu - View commit details
-
Copy full SHA for 36108a7 - Browse repository at this point
Copy the full SHA 36108a7View commit details -
Configuration menu - View commit details
-
Copy full SHA for 6eb1e99 - Browse repository at this point
Copy the full SHA 6eb1e99View commit details -
[docs] 重组 docs 目录:迁移技术文档,移除 blog/
- 4 篇技术文档从 docs/blog/ 迁移到 docs/(logging-guide、openapi-guide、coroutine-guide、production-deployment) - 删除 docs/blog/ 目录 - 修复所有交叉引用链接
Configuration menu - View commit details
-
Copy full SHA for a0fecbb - Browse repository at this point
Copy the full SHA a0fecbbView commit details
Commits on May 13, 2026
-
Configuration menu - View commit details
-
Copy full SHA for c693e12 - Browse repository at this point
Copy the full SHA c693e12View commit details -
Configuration menu - View commit details
-
Copy full SHA for 34608e5 - Browse repository at this point
Copy the full SHA 34608e5View commit details -
[fix] HttpServer 成员析构顺序:activeConnections_/draining_ 移到 baseLoop_ 之前
io_context 析构时会销毁悬挂的协程帧,协程帧中 ConnectionCounter 的 析构函数访问 activeConnections_ 和 draining_。原声明顺序导致这两个 atomic 先于 baseLoop_(io_context) 被析构,Windows IOCP 下 scatter-gather write 的 completion 延迟窗口使协程更容易悬挂到 io_context 析构阶段, 触发 use-after-free(IntegrationTest.LargeBody MSYS2 SegFault)。
Configuration menu - View commit details
-
Copy full SHA for 227a4df - Browse repository at this point
Copy the full SHA 227a4dfView commit details -
[chore] 分离 TFB 与框架对比 benchmark 入口
- docker/bench_main.cpp: 还原为框架对比入口(含 SyncMiddleware) - docker/TFB/: 新建目录,存放 TFB 专用入口和配置 - benchmark/hical/Dockerfile: 还原为 v2.6.0 版本 - benchmark/hical/benchmark_config.json: 移至 docker/TFB/
Configuration menu - View commit details
-
Copy full SHA for 081d62a - Browse repository at this point
Copy the full SHA 081d62aView commit details -
[perf] HTTP pipelining 优化:parse-before-read 快速路径 + 延迟 memmove
阶段 A 头部解析循环增加前置解析:当 bufUsed > 0 时先尝试 phr_parse_request,命中则跳过 async_read_some(零 syscall)。 16 pipeline 场景下 15/16 请求跳过读系统调用。 修复 pipelining 下 string_view 悬空 bug:memmove 从阶段 C 延迟到 阶段 D 写响应之后执行,避免覆盖 nativeReq.target/headers 引用的 readBuf 数据。 新增 3 个 pipelining 集成测试(4 请求/16 深度/混合 404)。
Configuration menu - View commit details
-
Copy full SHA for d3aa3a4 - Browse repository at this point
Copy the full SHA d3aa3a4View commit details -
[fix] idleTimerLoop 悬空引用:steady_timer& 改为 shared_ptr<steady_timer>
co_spawn(detached) 启动的 idleTimerLoop 协程通过裸引用持有 handleSession 栈上的 optional<steady_timer>。handleSession 先退出时引用悬空,Windows IOCP 下 ~io_context() 清理悬挂协程帧时偶发 SEGFAULT(IntegrationTest.KeepAlive)。 修复:deadline 改为 shared_ptr<steady_timer>,idleTimerLoop 通过 shared_ptr 持有所有权,timer 在协程退出前不被销毁。额外开销:每连接 1 次 make_shared (~100 ns),可忽略。
Configuration menu - View commit details
-
Copy full SHA for cf4912e - Browse repository at this point
Copy the full SHA cf4912eView commit details
Commits on May 14, 2026
-
[fix] idleTimerLoop 悬空引用(续):cancel 后 yield 确保协程帧退出
上一个 commit 将 steady_timer& 改为 shared_ptr 修复了 timer 悬空引用, 但 tcp::socket& 裸引用仍在。handleSession co_return 后 socket 析构, 若 idleTimerLoop 的 cancel completion 还未被 dispatch,协程帧仍悬挂 持有悬空 socket 引用,~io_context() 清理时偶发 SEGFAULT。 修复:deadline->cancel() 后 co_await post(executor) 让出一个调度轮次, 单线程 io_context 保证 idleTimerLoop 在下一次 dispatch 时被 resume (ec=operation_aborted → break → 协程帧销毁),此后 handleSession 安全 co_return → socket 析构,无悬空引用。
Configuration menu - View commit details
-
Copy full SHA for d28e55c - Browse repository at this point
Copy the full SHA d28e55cView commit details -
[fix] 回退 co_await post() yield:与 stopAllLoops 竞态导致 double-free
上一个 commit 的 co_await post(executor) 让 handleSession 在 stop() 后仍能 执行,ConnectionCounter 析构再次调用 stopAllLoops(),work_guard_ 被 double-free。 ASan 在 Linux Clang CI 确定性检出。 回退为仅保留 deadline->cancel()。timer 悬空引用已由 shared_ptr 修复。 socket 引用的偶发 SEGFAULT(仅 Windows IOCP)需要通过 stopAllLoops 幂等化 或其他架构方案解决,不适合用延长协程生命周期的方式修复。
Configuration menu - View commit details
-
Copy full SHA for a8a4a1e - Browse repository at this point
Copy the full SHA a8a4a1eView commit details -
[chore] ports: 添加 picohttpparser 正式依赖,移除 bundled 构建
- vcpkg.json 声明 picohttpparser 为正式依赖(对应 vcpkg#51743) - portfile.cmake 传递 -DHICAL_USE_SYSTEM_PICOHTTPPARSER=ON - 新增 ports/picohttpparser/ overlay port 供非 vcpkg 用户使用
Configuration menu - View commit details
-
Copy full SHA for 2bb530c - Browse repository at this point
Copy the full SHA 2bb530cView commit details
This comparison is taking too long to generate.
Unfortunately it looks like we can’t render this comparison for you right now. It might be too big, or there might be something weird with your repository.
You can try running this command locally to see the comparison on your machine:
git diff v2.6.0...v2.6.1