diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c
index 2b12b17..6263ba5 100644
--- a/src/backend/postmaster/postmaster.c
+++ b/src/backend/postmaster/postmaster.c
@@ -3147,15 +3147,17 @@ SignalSomeChildren(int signal, int target)
 	for (curr = DLGetHead(BackendList); curr; curr = DLGetSucc(curr))
 	{
 		Backend    *bp = (Backend *) DLE_VAL(curr);
+		int			child;
 
 		if (bp->dead_end)
 			continue;
-		if (!(target & BACKEND_TYPE_NORMAL) && !bp->is_autovacuum)
-			continue;
-		if (!(target & BACKEND_TYPE_AUTOVAC) && bp->is_autovacuum)
-			continue;
-		if (!(target & BACKEND_TYPE_WALSND) &&
-			IsPostmasterChildWalSender(bp->child_slot))
+		if (IsPostmasterChildWalSender(bp->child_slot))
+			child = BACKEND_TYPE_WALSND;
+		else if (bp->is_autovacuum)
+			child = BACKEND_TYPE_AUTOVAC;
+		else
+			child = BACKEND_TYPE_NORMAL;
+		if (!(target & child))
 			continue;
 
 		ereport(DEBUG4,
