beanstalk源码剖析——客户连接管理

beanstalk把监听socket加入了epoll,当客户端有连接时,在主循环sockmain中通过处理epoll事件完成对连接的处理。

1. 客户端连接处理代码

通过前面对主循环的分析可以看出,监听socket的回调处理函数为srvaccept(见如下函数)。

通过分析h_accept可以看出,客户端连接的处理包括三个步骤:

a.建立连接socket,并将连接设置为非阻塞;

b.创建连接管理对象,

c.将和客户端的连接加入epoll

连接处理

 

2. 客户端连接管理

每一个连接抽象为如下结构。

 

连接抽象

注意这里的连接socket和监听socket都抽象为统一的Socket类型,两者的差别是属性值。

监听socket的回调参数是Server,回调函数是h_accept,而连接socket的回调参数是Conn,回调函数是prothandle。

 

posted @ 2013-02-17 17:23  blockcipher  阅读(360)  评论(0编辑  收藏  举报