wKioL1ZtGluQV1cWAAF8Mw8eBBg264.png




流程

1,master init。

  fork创建subMgr,subMgr运行后一直管道监听master是否有请求,阻塞等待master的请求。

 请求包括:

{

CMD_NONE,

CMD_EXIT,

CMD_KILL_SUBPROC,

CMD_CREATE_SUBPROC

};

2,master apply。

 master给subMgr发送创建子进程的请求,subMgr收到后,创建自进程。

 在创建子进程之前,subMgr new conn,作为server开始监听。

 创建完子进程后,conn复制到子进程里面, subMgr里面的conn关闭,子进程的继续监听。

 创建完子进程后,subMgr通知master, master创建tmpconn作为客户端,连接到子进程里面的conn,子进程accept出一个subconn,用来与master的tmpconn通讯。


3,子进程执行任务通过subProcess(stream),stream即使subconn,执行任务的时候可以与master通讯。