mirror of
https://github.com/postgres/postgres.git
synced 2026-03-30 06:16:39 -04:00
In standby mode, we don't actually report progress of recovery, but up until now, startup_progress_timeout_handler() nevertheless got called every log_startup_progress_interval seconds. That's an unnecessary expense, so avoid it. Report by Thomas Munro. Patch by Bharath Rupireddy, reviewed by Simon Riggs, Thomas Munro, and me. Back-patch to v15, where the problem was introduced. Discussion: https://www.postgresql.org/message-id/CA%2BhUKGKCHSffAj8zZJKJvNX7ygnQFxVD6wm1d-2j3fVw%2BMafPQ%40mail.gmail.com
41 lines
1.3 KiB
C
41 lines
1.3 KiB
C
/*-------------------------------------------------------------------------
|
|
*
|
|
* startup.h
|
|
* Exports from postmaster/startup.c.
|
|
*
|
|
* Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
|
|
*
|
|
* src/include/postmaster/startup.h
|
|
*
|
|
*-------------------------------------------------------------------------
|
|
*/
|
|
#ifndef _STARTUP_H
|
|
#define _STARTUP_H
|
|
|
|
/*
|
|
* Log the startup progress message if a timer has expired.
|
|
*/
|
|
#define ereport_startup_progress(msg, ...) \
|
|
do { \
|
|
long secs; \
|
|
int usecs; \
|
|
if (has_startup_progress_timeout_expired(&secs, &usecs)) \
|
|
ereport(LOG, errmsg(msg, secs, (usecs / 10000), __VA_ARGS__ )); \
|
|
} while(0)
|
|
|
|
extern PGDLLIMPORT int log_startup_progress_interval;
|
|
|
|
extern void HandleStartupProcInterrupts(void);
|
|
extern void StartupProcessMain(void) pg_attribute_noreturn();
|
|
extern void PreRestoreCommand(void);
|
|
extern void PostRestoreCommand(void);
|
|
extern bool IsPromoteSignaled(void);
|
|
extern void ResetPromoteSignaled(void);
|
|
|
|
extern void enable_startup_progress_timeout(void);
|
|
extern void disable_startup_progress_timeout(void);
|
|
extern void begin_startup_progress_phase(void);
|
|
extern void startup_progress_timeout_handler(void);
|
|
extern bool has_startup_progress_timeout_expired(long *secs, int *usecs);
|
|
|
|
#endif /* _STARTUP_H */
|