问题根因: 1. coco_accept/coco_sleep/coco_timer 在多线程全局调度器下不工作, 因为 main_sched 的 poll_fd 和 timer_wheel 无人轮询 2. client_handler 协程栈上分配了约 40KB+ 的 http_request_t, 超出默认 2KB 协程栈,导致栈溢出 SIGSEGV 修复方案: - 主线程直接 accept_loop(poll 阻塞),不使用协程 - accept 成功后通过 coco_go_with_opts 创建 client_handler 协程, 显式指定 1MB 栈大小 - 单线程模式保持原有行为不变 测试: - 59/59 集成测试通过 - 127/127 单元测试通过 - curl 多线程模式 HTTP 请求正常返回
2 lines
39 B
HTML
2 lines
39 B
HTML
<html><body>Hello Cocoon</body></html>
|