@@ -715,6 +715,7 @@ static void MtmSender(Datum arg)
715715 pqsignal (SIGINT , SetStop );
716716 pqsignal (SIGQUIT , SetStop );
717717 pqsignal (SIGTERM , SetStop );
718+ pqsignal (SIGHUP , PostgresSigHupHandler );
718719
719720 /* We're now ready to receive signals */
720721 BackgroundWorkerUnblockSignals ();
@@ -733,6 +734,12 @@ static void MtmSender(Datum arg)
733734 PGSemaphoreLock (& Mtm -> sendSemaphore );
734735 CHECK_FOR_INTERRUPTS ();
735736
737+ if (ConfigReloadPending )
738+ {
739+ ConfigReloadPending = false;
740+ ProcessConfigFile (PGC_SIGHUP );
741+ }
742+
736743 MtmCheckHeartbeat ();
737744 /*
738745 * Use shared lock to improve locality,
@@ -794,6 +801,7 @@ static void MtmMonitor(Datum arg)
794801 pqsignal (SIGINT , SetStop );
795802 pqsignal (SIGQUIT , SetStop );
796803 pqsignal (SIGTERM , SetStop );
804+ pqsignal (SIGHUP , PostgresSigHupHandler );
797805
798806 MtmBackgroundWorker = true;
799807
@@ -808,6 +816,13 @@ static void MtmMonitor(Datum arg)
808816 if (rc & WL_POSTMASTER_DEATH ) {
809817 break ;
810818 }
819+
820+ if (ConfigReloadPending )
821+ {
822+ ConfigReloadPending = false;
823+ ProcessConfigFile (PGC_SIGHUP );
824+ }
825+
811826 MtmRefreshClusterStatus ();
812827 }
813828}
@@ -833,6 +848,7 @@ static void MtmReceiver(Datum arg)
833848 pqsignal (SIGINT , SetStop );
834849 pqsignal (SIGQUIT , SetStop );
835850 pqsignal (SIGTERM , SetStop );
851+ pqsignal (SIGHUP , PostgresSigHupHandler );
836852
837853 MtmBackgroundWorker = true;
838854
@@ -868,7 +884,14 @@ static void MtmReceiver(Datum arg)
868884 for (j = 0 ; j < n ; j ++ ) {
869885 if (events [j ].events & EPOLLIN )
870886#else
871- fd_set events ;
887+ fd_set events ;
888+
889+ if (ConfigReloadPending )
890+ {
891+ ConfigReloadPending = false;
892+ ProcessConfigFile (PGC_SIGHUP );
893+ }
894+
872895 do {
873896 struct timeval tv ;
874897 events = inset ;
0 commit comments