Support custom wait events for wait event type "Extension"
authorMichael Paquier <michael@paquier.xyz>
Mon, 31 Jul 2023 08:09:24 +0000 (17:09 +0900)
committerMichael Paquier <michael@paquier.xyz>
Mon, 31 Jul 2023 08:09:24 +0000 (17:09 +0900)
commitc9af054653077699189884c336a65e23a7c8aebb
tree7c58a0dc246c3b432f6169236db0cc1688e63e92
parent39055cb4ccd5b521ceb802b6a8194de912a422cc
Support custom wait events for wait event type "Extension"

Two backend routines are added to allow extension to allocate and define
custom wait events, all of these being allocated in the type
"Extension":
* WaitEventExtensionNew(), that allocates a wait event ID computed from
a counter in shared memory.
* WaitEventExtensionRegisterName(), to associate a custom string to the
wait event ID allocated.

Note that this includes an example of how to use this new facility in
worker_spi with tests in TAP for various scenarios, and some
documentation about how to use them.

Any code in the tree that currently uses WAIT_EVENT_EXTENSION could
switch to this new facility to define custom wait events.  This is left
as work for future patches.

Author: Masahiro Ikeda
Reviewed-by: Andres Freund, Michael Paquier, Tristan Partin, Bharath
Rupireddy
Discussion: https://postgr.es/m/b9f5411acda0cf15c8fbb767702ff43e@oss.nttdata.com
doc/src/sgml/monitoring.sgml
doc/src/sgml/xfunc.sgml
src/backend/storage/ipc/ipci.c
src/backend/utils/activity/generate-wait_event_types.pl
src/backend/utils/activity/wait_event.c
src/backend/utils/activity/wait_event_names.txt
src/include/utils/wait_event.h
src/test/modules/worker_spi/t/001_worker_spi.pl
src/test/modules/worker_spi/worker_spi--1.0.sql
src/test/modules/worker_spi/worker_spi.c
src/tools/pgindent/typedefs.list