PostgreSQL server端接收连接后fork进程
发表于:2025-01-20 作者:千家信息网编辑
千家信息网最后更新 2025年01月20日,main->PostmasterMain->ServerLoop: for(;;){ ... //会阻塞在这,监视文件描述符的
千家信息网最后更新 2025年01月20日PostgreSQL server端接收连接后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); } } } }
进程
函数
文件
变化
监视
阻塞
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
国外物流数据库
开展网络安全教育简讯
手机 服务器
香港有哪些软件开发公司
企业网盘服务器
汉家江湖用什么软件开发的
中兴操作系统及支撑软件开发
网络安全防护中心大数据
方舟端游中运行专用服务器是什么
网络安全班会课总结
加密认证是网络安全措施
无法连接华为服务器管理口
服务器没有电源
从软件开发到游戏开发
网络安全员技术含量大吗
员工工资管理系统数据库设计流图
鼎新erp软件开发企业
开源的文件管理服务器
山西程序软件开发价格
数据库事务层级是什么
那个大学软件开发好
办公局域网数据库安全访问技术
华付软件开发工程师的工资
金华市公安局网络安全检查
巴中网络安全志愿者
地铁逃生选什么服务器可以秒进
软件开发过程编码阶段
数据库合并后丢失
net软件开发是什么意思思
数据库导入文档步骤