aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMichael Paquier <michael@paquier.xyz>2023-02-01 15:46:04 +0900
committerMichael Paquier <michael@paquier.xyz>2023-02-01 15:46:04 +0900
commit38cc08546459a9052b6ed43cdb28973288db38c6 (patch)
tree7c20a2889edc94bef243aa57cf906d49bba1222b /src
parentfbed4bc59e362e13fb0d0e0b08c995c18c7e4d5a (diff)
downloadpostgresql-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.c32
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;
}
/*