/
githubmirror
/
postgres
Обзор
Документация
Войти
/
githubmirror
/
postgres
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
src/include/replication/walsender.h
74 строки
2 KB
Fujii Masao
Add wal_sender_shutdown_timeout GUC to limit shutdown wait for replication
06 апр 2026, 05:35
06 апр 2026, 05:35
a8f45de
Код
Авторство
О чём код?
/*------------------------------------------------------------------------- * * walsender.h * Exports from replication/walsender.c. * * Portions Copyright (c) 2010-2026, PostgreSQL Global Development Group * * src/include/replication/walsender.h * *------------------------------------------------------------------------- */ #ifndef _WALSENDER_H #define _WALSENDER_H #include "access/xlogdefs.h" /* * What to do with a snapshot in create replication slot command. */ typedef enum { CRS_EXPORT_SNAPSHOT, CRS_NOEXPORT_SNAPSHOT, CRS_USE_SNAPSHOT, } CRSSnapshotAction; /* global state */ extern PGDLLIMPORT bool am_walsender; extern PGDLLIMPORT bool am_cascading_walsender; extern PGDLLIMPORT bool am_db_walsender; extern PGDLLIMPORT bool wake_wal_senders; /* user-settable parameters */ extern PGDLLIMPORT int max_wal_senders; extern PGDLLIMPORT int wal_sender_timeout; extern PGDLLIMPORT int wal_sender_shutdown_timeout; extern PGDLLIMPORT bool log_replication_commands; extern void InitWalSender(void); extern bool exec_replication_command(const char *cmd_string); extern void WalSndErrorCleanup(void); extern void PhysicalWakeupLogicalWalSnd(void); extern XLogRecPtr GetStandbyFlushRecPtr(TimeLineID *tli); extern void WalSndSignals(void); extern void WalSndWakeup(bool physical, bool logical); extern void WalSndInitStopping(void); extern void WalSndWaitStopping(void); extern void HandleWalSndInitStopping(void); extern void WalSndRqstFileReload(void); /* * Remember that we want to wakeup walsenders later * * This is separated from doing the actual wakeup because the writeout is done * while holding contended locks. */ #define WalSndWakeupRequest() \ do { wake_wal_senders = true; } while (0) /* * wakeup walsenders if there is work to be done */ static inline void WalSndWakeupProcessRequests(bool physical, bool logical) { if (wake_wal_senders) { wake_wal_senders = false; if (max_wal_senders > 0) WalSndWakeup(physical, logical); } } #endif /* _WALSENDER_H */