add SIGUSR1 handler for wal receiver writer thread

The SIGUSR1 handler will wake up wal receiver thread once wal receiver
thread had invoked SetLatch().
This commit is contained in:
LiHeng
2021-03-02 12:35:52 +08:00
parent 2ed38ece92
commit 6b6bcffe71

View File

@ -653,6 +653,16 @@ static void ShutdownWalRcvWriter(int code, Datum arg)
emptyWalRcvWriterLatch();
}
/* SIGUSR1: let latch facility handle the signal */
static void WalRcvWriterProcSigUsr1Handler(SIGNAL_ARGS)
{
int saveErrno = errno;
latch_sigusr1_handler();
errno = saveErrno;
}
void walrcvWriterMain(void)
{
sigjmp_buf localSigjmpBuf;
@ -669,7 +679,7 @@ void walrcvWriterMain(void)
(void)gspqsignal(SIGQUIT, walrcvWriterQuickDie); /* hard crash time */
(void)gspqsignal(SIGALRM, SIG_IGN);
(void)gspqsignal(SIGPIPE, SIG_IGN);
(void)gspqsignal(SIGUSR1, SIG_IGN);
(void)gspqsignal(SIGUSR1, WalRcvWriterProcSigUsr1Handler);
(void)gspqsignal(SIGUSR2, SIG_IGN);
/*