1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- /*-------------------------------------------------------------------------
- *
- * walsender.h
- * Exports from replication/walsender.c.
- *
- * Portions Copyright (c) 2010-2022, PostgreSQL Global Development Group
- *
- * src/include/replication/walsender.h
- *
- *-------------------------------------------------------------------------
- */
- #ifndef _WALSENDER_H
- #define _WALSENDER_H
- #include <signal.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 bool log_replication_commands;
- extern void InitWalSender(void);
- extern bool exec_replication_command(const char *query_string);
- extern void WalSndErrorCleanup(void);
- extern void WalSndResourceCleanup(bool isCommit);
- extern void WalSndSignals(void);
- extern Size WalSndShmemSize(void);
- extern void WalSndShmemInit(void);
- extern void WalSndWakeup(void);
- 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
- */
- #define WalSndWakeupProcessRequests() \
- do \
- { \
- if (wake_wal_senders) \
- { \
- wake_wal_senders = false; \
- if (max_wal_senders > 0) \
- WalSndWakeup(); \
- } \
- } while (0)
- #endif /* _WALSENDER_H */
|