From 67cc65b0c98d8282602b414d0ffaff158bf887f7 Mon Sep 17 00:00:00 2001
From: Martijn van Oosterhout <oosterhout@fox-it.com>
Date: Tue, 4 Jun 2019 16:14:31 +0200
Subject: [PATCH 3/3] Quickly bail if queue tail can't be moved.

---
 src/backend/commands/async.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/src/backend/commands/async.c b/src/backend/commands/async.c
index 18bd3e975e..f0a5a2472f 100644
--- a/src/backend/commands/async.c
+++ b/src/backend/commands/async.c
@@ -2022,7 +2022,11 @@ asyncQueueAdvanceTail(void)
 	for (i = 1; i <= MaxBackends; i++)
 	{
 		if (QUEUE_BACKEND_PID(i) != InvalidPid)
+		{
 			min = QUEUE_POS_MIN(min, QUEUE_BACKEND_POS(i));
+			if (QUEUE_POS_EQUAL(min, QUEUE_TAIL))
+				break;
+		}
 	}
 	oldtailpage = QUEUE_POS_PAGE(QUEUE_TAIL);
 	QUEUE_TAIL = min;
-- 
2.11.0

