Subject: [PATCH v1 1/1] remove WaitEventCustomCounterData

From: Nathan Bossart <[email-masked]>
Date: Wed, 8 Jul 2026 21:50:04 -0500

---
 src/backend/utils/activity/wait_event.c | 29 ++++++-------------------
 src/tools/pgindent/typedefs.list        |  1 -
 2 files changed, 7 insertions(+), 23 deletions(-)

diff --git a/src/backend/utils/activity/wait_event.c b/src/backend/utils/activity/wait_event.c
index 95635c7f56c..7ee6f99fb50 100644
--- a/src/backend/utils/activity/wait_event.c
+++ b/src/backend/utils/activity/wait_event.c
@@ -81,14 +81,7 @@ typedef struct WaitEventCustomEntryByName

 /* dynamic allocation counter for custom wait events */
-typedef struct WaitEventCustomCounterData
-{
-	int			nextId;			/* next ID to assign */
-	slock_t		mutex;			/* protects the counter */
-} WaitEventCustomCounterData;
-
-/* pointer to the shared memory */
-static WaitEventCustomCounterData *WaitEventCustomCounter;
+static int *WaitEventCustomCounter;
 
 /* first event ID of custom wait events */
 #define WAIT_EVENT_CUSTOM_INITIAL_ID	1
@@ -110,8 +103,8 @@ const ShmemCallbacks WaitEventCustomShmemCallbacks = {
 static void
 WaitEventCustomShmemRequest(void *arg)
 {
-	ShmemRequestStruct(.name = "WaitEventCustomCounterData",
-					   .size = sizeof(WaitEventCustomCounterData),
+	ShmemRequestStruct(.name = "WaitEventCustomCounter",
+					   .size = sizeof(int),
 					   .ptr = (void **) &WaitEventCustomCounter,
 		);
 	ShmemRequestHash(.name = "WaitEventCustom hash by wait event information",
@@ -134,9 +127,8 @@ WaitEventCustomShmemRequest(void *arg)
 static void
 WaitEventCustomShmemInit(void *arg)
 {
-	/* initialize the allocation counter and its spinlock. */
-	WaitEventCustomCounter->nextId = WAIT_EVENT_CUSTOM_INITIAL_ID;
-	SpinLockInit(&WaitEventCustomCounter->mutex);
+	/* initialize the allocation counter */
+	*WaitEventCustomCounter = WAIT_EVENT_CUSTOM_INITIAL_ID;
 }
 
 /*
@@ -221,19 +213,12 @@ WaitEventCustomNew(uint32 classId, const char *wait_event_name)
 	}
 
 	/* Allocate a new event Id */
-	SpinLockAcquire(&WaitEventCustomCounter->mutex);
-
-	if (WaitEventCustomCounter->nextId >= WAIT_EVENT_CUSTOM_HASH_SIZE)
-	{
-		SpinLockRelease(&WaitEventCustomCounter->mutex);
+	if (*WaitEventCustomCounter >= WAIT_EVENT_CUSTOM_HASH_SIZE)
 		ereport(ERROR,
 				errcode(ERRCODE_PROGRAM_LIMIT_EXCEEDED),
 				errmsg("too many custom wait events"));
-	}
-
-	eventId = WaitEventCustomCounter->nextId++;
 
-	SpinLockRelease(&WaitEventCustomCounter->mutex);
+	eventId = (*WaitEventCustomCounter)++;
 
 	/* Register the new wait event */
 	wait_event_info = classId | eventId;
diff --git a/src/tools/pgindent/typedefs.list b/src/tools/pgindent/typedefs.list
index ffb413ab612..3174e0e4ab8 100644
--- a/src/tools/pgindent/typedefs.list
+++ b/src/tools/pgindent/typedefs.list
@@ -3418,7 +3418,6 @@ WaitEvent
 WaitEventActivity
 WaitEventBuffer
 WaitEventClient
-WaitEventCustomCounterData
 WaitEventCustomEntryByInfo
 WaitEventCustomEntryByName
 WaitEventIO
-- 
2.50.1 (Apple Git-155)

--65l7A33W789+zwjF--