- 论坛徽章:
- 4
|
本帖最后由 linux_c_py_php 于 2013-02-24 20:03 编辑
starwing83 发表于 2013-02-24 19:33
回复 27# linux_c_py_php
不是... 我觉得你又误解我了, 我疯了...
这得往细节上说, 你仔细看一下我疑惑的重点:
① 一个request被一个coroutine处理完的标识是什么... 我答: coroutine dead.
② 作为一个server, 处理同一个连接上接连到来的请求, 必须是顺序处理的, 即一个连接同一个时刻只有一个coroutine。.
③ 在处理一个连接上的request的时候, server是不会继续读或者处理该连接上下一个请求的, 直到该连接上当前的request完成了.
④ request是lua异步执行的, server跑其他fd的事件, 与lua自己跑自己需要的事件没任何关系.
⑤ 当这个连接上的lua跑完(即这个连接的coroutine死了)了, server需要继续处理该连接下一个request, 但server在实现上来说是不知道该连接上的lua跑完的, 本来两者间就没有什么通知机制. 所以我说要server轮询检查每个连接上的coroutine死没死...不死就不能处理该连接上的下一个request, 该连接还得继续等其上的coroutine在后续事件循环中完成执行...
到底是什么情况- -... 是我执迷不悟还是交流有误解啊.
|
|