@@ -88,8 +88,8 @@ typedef struct
8888 Latch * caller ;
8989} RemoteUserIdResult ;
9090
91- static void SendCurrentUserId (void );
92- static void SendBgWorkerPids (void );
91+ static void SendCurrentUserId (ProcSignalReason );
92+ static void SendBgWorkerPids (ProcSignalReason );
9393static Oid GetRemoteBackendUserId (PGPROC * proc );
9494static List * GetRemoteBackendWorkers (PGPROC * proc );
9595static List * GetRemoteBackendQueryStates (PGPROC * leader ,
@@ -261,7 +261,6 @@ _PG_fini(void)
261261
262262 /* clear global state */
263263 list_free (QueryDescStack );
264- AssignCustomProcSignalHandler (QueryStatePollReason , NULL );
265264
266265 /* Uninstall hooks. */
267266 ExecutorStart_hook = prev_ExecutorStart ;
@@ -605,7 +604,11 @@ pg_query_state(PG_FUNCTION_ARGS)
605604 funcctx -> max_calls = max_calls ;
606605
607606 /* Make tuple descriptor */
607+ #if PG_VERSION_NUM < 120000
608608 tupdesc = CreateTemplateTupleDesc (N_ATTRS , false);
609+ #else
610+ tupdesc = CreateTemplateTupleDesc (N_ATTRS );
611+ #endif
609612 TupleDescInitEntry (tupdesc , (AttrNumber ) 1 , "pid" , INT4OID , -1 , 0 );
610613 TupleDescInitEntry (tupdesc , (AttrNumber ) 2 , "frame_number" , INT4OID , -1 , 0 );
611614 TupleDescInitEntry (tupdesc , (AttrNumber ) 3 , "query_text" , TEXTOID , -1 , 0 );
@@ -659,7 +662,7 @@ pg_query_state(PG_FUNCTION_ARGS)
659662}
660663
661664static void
662- SendCurrentUserId (void )
665+ SendCurrentUserId (ProcSignalReason reason )
663666{
664667 SpinLockAcquire (& counterpart_userid -> mutex );
665668 counterpart_userid -> userid = GetUserId ();
@@ -702,7 +705,8 @@ GetRemoteBackendUserId(PGPROC *proc)
702705#if PG_VERSION_NUM < 100000
703706 WaitLatch (MyLatch , WL_LATCH_SET , 0 );
704707#else
705- WaitLatch (MyLatch , WL_LATCH_SET , 0 , PG_WAIT_EXTENSION );
708+ WaitLatch (MyLatch , WL_LATCH_SET | WL_EXIT_ON_PM_DEATH , 0 ,
709+ PG_WAIT_EXTENSION );
706710#endif
707711 CHECK_FOR_INTERRUPTS ();
708712 ResetLatch (MyLatch );
@@ -743,8 +747,9 @@ shm_mq_receive_with_timeout(shm_mq_handle *mqh,
743747#if PG_VERSION_NUM < 100000
744748 rc = WaitLatch (MyLatch , WL_LATCH_SET | WL_TIMEOUT , delay );
745749#else
746- rc = WaitLatch (MyLatch , WL_LATCH_SET | WL_TIMEOUT , delay ,
747- PG_WAIT_EXTENSION );
750+ rc = WaitLatch (MyLatch ,
751+ WL_LATCH_SET | WL_EXIT_ON_PM_DEATH | WL_TIMEOUT ,
752+ delay , PG_WAIT_EXTENSION );
748753#endif
749754
750755 INSTR_TIME_SET_CURRENT (cur_time );
@@ -800,7 +805,7 @@ typedef struct
800805} BgWorkerPids ;
801806
802807static void
803- SendBgWorkerPids (void )
808+ SendBgWorkerPids (ProcSignalReason reason )
804809{
805810 ListCell * iter ;
806811 List * all_workers = NIL ;
0 commit comments