PostgreSQLserver端接收连接后fork进程-创新互联

main->PostmasterMain->ServerLoop: for(;;){ ... //会阻塞在这,监视文件描述符的变化 selres = select(nSockets, &rmask, NULL, NULL, &timeout); if (selres > 0){ for (i = 0; i < MAXLISTEN; i++){ //找一个有效的fd if (ListenSocket[i] == PGINVALID_SOCKET) break; if (FD_ISSET(ListenSocket[i], &rmask)){ port = ConnCreate(ListenSocket[i]);->StreamConnection->accept BackendStartup(port);//fork进程 |-- pid = fork_process(); | if (pid == 0){//child | InitPostmasterChild(); | ClosePostmasterPorts(false); | BackendInitialize(port); | //该函数不会返回 | BackendRun(port);->PostgresMain: | |-- for (;;){ | | if (send_ready_for_query){ | | ... | | ReadyForQuery(whereToSendOutput);->pq_flush();->internal_flush->secure_write->secure_raw_write->send | | send_ready_for_query = false; | | } | | firstchar = ReadCommand(&input_message); | | switch(firstchar):{ | | case 'Q':exec_simple_query(query_string); | | ... | | } | |-- } | } | ...father |-- return STATUS_OK //关闭father socket StreamClose(port->sock); ConnFree(port); } } } }

主要从事网页设计、PC网站建设(电脑版网站建设)、wap网站建设(手机版网站建设)、响应式网站设计、程序开发、微网站、微信小程序等,凭借多年来在互联网的打拼,我们在互联网网站建设行业积累了丰富的成都网站制作、网站设计、网络营销经验,集策划、开发、设计、营销、管理等多方位专业化运作于一体,具备承接不同规模与类型的建设项目的能力。

另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


当前题目:PostgreSQLserver端接收连接后fork进程-创新互联
链接地址:http://myzitong.com/article/gosco.html