PostgreSQL Source Code git master
Loading...
Searching...
No Matches
walsender.h
Go to the documentation of this file.
1/*-------------------------------------------------------------------------
2 *
3 * walsender.h
4 * Exports from replication/walsender.c.
5 *
6 * Portions Copyright (c) 2010-2026, PostgreSQL Global Development Group
7 *
8 * src/include/replication/walsender.h
9 *
10 *-------------------------------------------------------------------------
11 */
12#ifndef _WALSENDER_H
13#define _WALSENDER_H
14
15#include "access/xlogdefs.h"
16
17/*
18 * What to do with a snapshot in create replication slot command.
19 */
26
27/* global state */
28extern PGDLLIMPORT bool am_walsender;
32
33/* user-settable parameters */
38
39extern void InitWalSender(void);
40extern bool exec_replication_command(const char *cmd_string);
41extern void WalSndErrorCleanup(void);
42extern void PhysicalWakeupLogicalWalSnd(void);
44extern void WalSndSignals(void);
45extern void WalSndWakeup(bool physical, bool logical);
46extern void WalSndInitStopping(void);
47extern void WalSndWaitStopping(void);
48extern void HandleWalSndInitStopping(void);
49extern void WalSndRqstFileReload(void);
50
51/*
52 * Remember that we want to wakeup walsenders later
53 *
54 * This is separated from doing the actual wakeup because the writeout is done
55 * while holding contended locks.
56 */
57#define WalSndWakeupRequest() \
58 do { wake_wal_senders = true; } while (0)
59
60/*
61 * wakeup walsenders if there is work to be done
62 */
63static inline void
64WalSndWakeupProcessRequests(bool physical, bool logical)
65{
67 {
68 wake_wal_senders = false;
69 if (max_wal_senders > 0)
70 WalSndWakeup(physical, logical);
71 }
72}
73
74#endif /* _WALSENDER_H */
#define PGDLLIMPORT
Definition c.h:1421
static int fb(int x)
PGDLLIMPORT bool wake_wal_senders
Definition walsender.c:155
void PhysicalWakeupLogicalWalSnd(void)
Definition walsender.c:1794
PGDLLIMPORT int wal_sender_shutdown_timeout
Definition walsender.c:146
void WalSndErrorCleanup(void)
Definition walsender.c:370
PGDLLIMPORT bool am_cascading_walsender
Definition walsender.c:136
void WalSndWakeup(bool physical, bool logical)
Definition walsender.c:3958
PGDLLIMPORT bool am_db_walsender
Definition walsender.c:138
bool exec_replication_command(const char *cmd_string)
Definition walsender.c:2058
void InitWalSender(void)
Definition walsender.c:323
static void WalSndWakeupProcessRequests(bool physical, bool logical)
Definition walsender.h:64
void WalSndInitStopping(void)
Definition walsender.c:4037
void WalSndWaitStopping(void)
Definition walsender.c:4063
PGDLLIMPORT int max_wal_senders
Definition walsender.c:141
PGDLLIMPORT bool log_replication_commands
Definition walsender.c:150
void WalSndRqstFileReload(void)
Definition walsender.c:3837
void HandleWalSndInitStopping(void)
Definition walsender.c:3860
PGDLLIMPORT int wal_sender_timeout
Definition walsender.c:143
PGDLLIMPORT bool am_walsender
Definition walsender.c:135
void WalSndSignals(void)
Definition walsender.c:3892
CRSSnapshotAction
Definition walsender.h:21
@ CRS_USE_SNAPSHOT
Definition walsender.h:24
@ CRS_NOEXPORT_SNAPSHOT
Definition walsender.h:23
@ CRS_EXPORT_SNAPSHOT
Definition walsender.h:22
XLogRecPtr GetStandbyFlushRecPtr(TimeLineID *tli)
Definition walsender.c:3804
uint64 XLogRecPtr
Definition xlogdefs.h:21
uint32 TimeLineID
Definition xlogdefs.h:63