数据结构:
image.png

入口函数:postgresMain

walsender启动后,此进程先会调用postgresMain

1,信号处理机制

信号是一种软件中断机制,是linux很重要的一种进程间通信方式,很多重要的应用程序都需要处理信号。PostgreSQL在启动Postmaster主进程时注册信号处理函数。在linux中使用signal()和sigaction()函数安装信号。PostgreSQL定义了pgsignal函数实现信号的安装。
pqsignal(int signo, pqsigfunc func) //信号值 信号处理程序
prevfunc=pg_signal_array[signum]
pg_signal_array[signum] =handler
实际上就是将信号处理程序传入数组,由信号收集器来去调用
typedefvoid (*pqsigfunc) (intsigno); 函数指针,可以让任意处理器函数来调用
image.png
返回值为函数如何执行?


2,部分代码如下:

image.png
image.png
image.png
image.png