{
CHECK_FOR_INTERRUPTS();
- if (ShutdownRequestPending)
+ if (SlotSyncCtx->stopSignaled)
{
ereport(LOG,
- errmsg("replication slot synchronization worker is shutting down on receiving SIGINT"));
+ errmsg("replication slot synchronization worker is shutting down because promotion is triggered"));
proc_exit(0);
}
/* Setup signal handling */
pqsignal(SIGHUP, SignalHandlerForConfigReload);
- pqsignal(SIGINT, SignalHandlerForShutdownRequest);
+ pqsignal(SIGINT, StatementCancelHandler);
pqsignal(SIGTERM, die);
pqsignal(SIGFPE, FloatExceptionHandler);
pqsignal(SIGUSR1, procsignal_sigusr1_handler);
/*
* The slot sync worker can't get here because it will only stop when it
- * receives a SIGINT from the startup process, or when there is an error.
+ * receives a stop request from the startup process, or when there is an
+ * error.
*/
Assert(false);
}
SpinLockRelease(&SlotSyncCtx->mutex);
+ /*
+ * Signal slotsync worker if it was still running. The worker will stop
+ * upon detecting that the stopSignaled flag is set to true.
+ */
if (worker_pid != InvalidPid)
- kill(worker_pid, SIGINT);
+ kill(worker_pid, SIGUSR1);
/* Wait for slot sync to end */
for (;;)