1 /*-------------------------------------------------------------------------
4 * Exports from replication/walsender.c.
6 * Portions Copyright (c) 2010-2025, PostgreSQL Global Development Group
8 * src/include/replication/walsender.h
10 *-------------------------------------------------------------------------
15 #include "access/xlogdefs.h"
18 * What to do with a snapshot in create replication slot command.
23 CRS_NOEXPORT_SNAPSHOT
,
28 extern PGDLLIMPORT
bool am_walsender
;
29 extern PGDLLIMPORT
bool am_cascading_walsender
;
30 extern PGDLLIMPORT
bool am_db_walsender
;
31 extern PGDLLIMPORT
bool wake_wal_senders
;
33 /* user-settable parameters */
34 extern PGDLLIMPORT
int max_wal_senders
;
35 extern PGDLLIMPORT
int wal_sender_timeout
;
36 extern PGDLLIMPORT
bool log_replication_commands
;
38 extern void InitWalSender(void);
39 extern bool exec_replication_command(const char *cmd_string
);
40 extern void WalSndErrorCleanup(void);
41 extern void PhysicalWakeupLogicalWalSnd(void);
42 extern XLogRecPtr
GetStandbyFlushRecPtr(TimeLineID
*tli
);
43 extern void WalSndSignals(void);
44 extern Size
WalSndShmemSize(void);
45 extern void WalSndShmemInit(void);
46 extern void WalSndWakeup(bool physical
, bool logical
);
47 extern void WalSndInitStopping(void);
48 extern void WalSndWaitStopping(void);
49 extern void HandleWalSndInitStopping(void);
50 extern void WalSndRqstFileReload(void);
53 * Remember that we want to wakeup walsenders later
55 * This is separated from doing the actual wakeup because the writeout is done
56 * while holding contended locks.
58 #define WalSndWakeupRequest() \
59 do { wake_wal_senders = true; } while (0)
62 * wakeup walsenders if there is work to be done
65 WalSndWakeupProcessRequests(bool physical
, bool logical
)
69 wake_wal_senders
= false;
70 if (max_wal_senders
> 0)
71 WalSndWakeup(physical
, logical
);
75 #endif /* _WALSENDER_H */