流程
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通讯。
转载于:https://blog.51cto.com/mingtangduyao/1722488