diff options
author | Michael Paquier <michael@paquier.xyz> | 2023-02-01 15:46:04 +0900 |
---|---|---|
committer | Michael Paquier <michael@paquier.xyz> | 2023-02-01 15:46:04 +0900 |
commit | 38cc08546459a9052b6ed43cdb28973288db38c6 (patch) | |
tree | 7c20a2889edc94bef243aa57cf906d49bba1222b /src | |
parent | fbed4bc59e362e13fb0d0e0b08c995c18c7e4d5a (diff) | |
download | postgresql-38cc08546459a9052b6ed43cdb28973288db38c6.tar.gz postgresql-38cc08546459a9052b6ed43cdb28973288db38c6.zip |
Simplify main waiting loop of the archiver process
As coded, the timeout given to WaitLatch() was always equal to
PGARCH_AUTOWAKE_INTERVAL, as time() was called two times repeatedly.
This simplification could have been done in d75288f.
While on it, this adjusts a comment in pgarch.c to describe the archiver
in a more neutral way.
Author: Sravan Kumar, Nathan Bossart
Reviewed-by: Kyotaro Horiguchi
Discussion: https://postgr.es/m/CA+=NbjjqYE9-Lnw7H7DAiS5jebmoMikwZQb_sBP7kgBCn9q6Hg@mail.gmail.com
Diffstat (limited to 'src')
-rw-r--r-- | src/backend/postmaster/pgarch.c | 32 |
1 files changed, 11 insertions, 21 deletions
diff --git a/src/backend/postmaster/pgarch.c b/src/backend/postmaster/pgarch.c index 8ecdb9ca233..3c714a79c68 100644 --- a/src/backend/postmaster/pgarch.c +++ b/src/backend/postmaster/pgarch.c @@ -297,13 +297,12 @@ pgarch_waken_stop(SIGNAL_ARGS) static void pgarch_MainLoop(void) { - pg_time_t last_copy_time = 0; bool time_to_stop; /* * There shouldn't be anything for the archiver to do except to wait for a - * signal ... however, the archiver exists to protect our data, so she - * wakes up occasionally to allow herself to be proactive. + * signal ... however, the archiver exists to protect our data, so it + * wakes up occasionally to allow itself to be proactive. */ do { @@ -335,30 +334,21 @@ pgarch_MainLoop(void) /* Do what we're here for */ pgarch_ArchiverCopyLoop(); - last_copy_time = time(NULL); /* * Sleep until a signal is received, or until a poll is forced by - * PGARCH_AUTOWAKE_INTERVAL having passed since last_copy_time, or - * until postmaster dies. + * PGARCH_AUTOWAKE_INTERVAL, or until postmaster dies. */ if (!time_to_stop) /* Don't wait during last iteration */ { - pg_time_t curtime = (pg_time_t) time(NULL); - int timeout; - - timeout = PGARCH_AUTOWAKE_INTERVAL - (curtime - last_copy_time); - if (timeout > 0) - { - int rc; - - rc = WaitLatch(MyLatch, - WL_LATCH_SET | WL_TIMEOUT | WL_POSTMASTER_DEATH, - timeout * 1000L, - WAIT_EVENT_ARCHIVER_MAIN); - if (rc & WL_POSTMASTER_DEATH) - time_to_stop = true; - } + int rc; + + rc = WaitLatch(MyLatch, + WL_LATCH_SET | WL_TIMEOUT | WL_POSTMASTER_DEATH, + PGARCH_AUTOWAKE_INTERVAL * 1000L, + WAIT_EVENT_ARCHIVER_MAIN); + if (rc & WL_POSTMASTER_DEATH) + time_to_stop = true; } /* |