8.2. 函数调用关系图

8.2.1. 启动与初始化

boot_and_initial.png

启动后,经过装载配置和初始化环境后,函数BindDaemonServer转换进程为守护进程,切换到管理进程角色。

8.2.2. 管理进程

monitor_process.png

创建所有管道和工作进程,然后监控工作进程结束事件,重启工作进程。

如果期间接收到signal,通过管道传递命令给所有工作进程。

8.2.3. 工作进程

worker_process.png

创建多路复用IO池,加入管道、文件缓存句柄、侦听端口,然后进入主循环,等待IO事件。

如果是侦听端口事件,接受连接放入多路复用IO池。

如果是通讯会话事件,收发数据,处理HTTP请求,加入文件监控句柄,并修改多路复用IO等待事件掩码。

如果是文件缓存事件,清理该文件监控句柄。

如果是管道事件,处理管理进程传递过来的事件。