Closed gaowanlu closed 6 months ago
main thread: listen loop std::unorder_map<socket_object(ThreadID,Sockfd,statusFlag)*, connection_object*> mapping; MessageBox(ReadWriteCache) | | MutexFdQueue(main->worker,worker->main) | domainsock(main->worker)[Notify New Connection,fdQueue] (worker->main)[Notify Connection Close,fdQueue] | DataSender(main->worker)[Trigger worker loop, checking self MessageBox] | (everywhere->main)[Trigger main loop, check self MessageBox, then (main->worker)] | |-----work thread loop(threadID), epoller(domainsock, client fd),checking new fd on every loop or domainsockTrigger. | | MessageBox(ReadWriteCache) | |-----work thread loop(threadID), epoller(domainsock, client fd),checking new fd on every loop or domainsockTrigger | | MessageBox(ReadWriteCache) | |-----everywhere
server socket accept all connections ,but just accepting once.