From 92d92feb622384f9b80f1f8cb0a5deb079ab7c46 Mon Sep 17 00:00:00 2001 From: Heikki Linnakangas Date: Tue, 23 Jun 2026 23:29:51 +0300 Subject: [PATCH 2/6] Clarify StartDataChecksumsWorkerLauncher() function Mark StartDataChecksumsWorkerLauncher() as static, since it's not called from outside the .c file. The DataChecksumsWorkerOperation struct can be moved into the .c file too. I found the "Main entry point for datachecksumsworker launcher process" description misleading. That description would be a better fit for DataChecksumsWorkerLauncherMain(), which is the process's "main" function, rather than StartDataChecksumsWorkerLauncher(). Reword the comment. --- src/backend/postmaster/datachecksum_state.c | 18 ++++++++++++++---- src/include/postmaster/datachecksum_state.h | 14 -------------- 2 files changed, 14 insertions(+), 18 deletions(-) diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c index 6fceb0b349c..91fff22d70d 100644 --- a/src/backend/postmaster/datachecksum_state.c +++ b/src/backend/postmaster/datachecksum_state.c @@ -276,6 +276,13 @@ static const ChecksumBarrierCondition checksum_barriers[9] = {PG_DATA_CHECKSUM_OFF, PG_DATA_CHECKSUM_INPROGRESS_OFF}, }; +/* Possible operations the DataChecksumsWorker can perform */ +typedef enum DataChecksumsWorkerOperation +{ + ENABLE_DATACHECKSUMS, + DISABLE_DATACHECKSUMS, +} DataChecksumsWorkerOperation; + /* Possible states for a database entry which has been processed */ typedef enum { @@ -364,6 +371,9 @@ static volatile sig_atomic_t launcher_running = false; static DataChecksumsWorkerOperation operation; /* Prototypes */ +static void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, + int cost_delay, + int cost_limit); static void DataChecksumsShmemRequest(void *arg); static bool DatabaseExists(Oid dboid); static List *BuildDatabaseList(void); @@ -564,12 +574,12 @@ enable_data_checksums(PG_FUNCTION_ARGS) /* * StartDataChecksumsWorkerLauncher - * Main entry point for datachecksumsworker launcher process + * Start the datachecksumsworker launcher process, if not running yet * - * The main entrypoint for starting data checksums processing for enabling as - * well as disabling. + * This is called to start data checksums processing for enabling as well as + * disabling. */ -void +static void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, int cost_delay, int cost_limit) diff --git a/src/include/postmaster/datachecksum_state.h b/src/include/postmaster/datachecksum_state.h index dbe25f5461f..f34db0c09e0 100644 --- a/src/include/postmaster/datachecksum_state.h +++ b/src/include/postmaster/datachecksum_state.h @@ -17,24 +17,10 @@ #include "storage/procsignal.h" -/* Possible operations the DataChecksumsWorker can perform */ -typedef enum DataChecksumsWorkerOperation -{ - ENABLE_DATACHECKSUMS, - DISABLE_DATACHECKSUMS, -} DataChecksumsWorkerOperation; - /* Prototypes for data checksum state manipulation */ bool AbsorbDataChecksumsBarrier(ProcSignalBarrierType barrier); void EmitAndWaitDataChecksumsBarrier(uint32 state); -/* Prototypes for data checksum background worker */ - -/* Start the background processes for enabling or disabling checksums */ -void StartDataChecksumsWorkerLauncher(DataChecksumsWorkerOperation op, - int cost_delay, - int cost_limit); - /* Background worker entrypoints */ void DataChecksumsWorkerLauncherMain(Datum arg); void DataChecksumsWorkerMain(Datum arg); -- 2.47.3