LCOV - differential code coverage report
Current view: top level - src/include/replication - walsender.h (source / functions) Coverage Total Hit GNC DCB
Current: Differential Code Coverage HEAD vs 15 Lines: 100.0 % 6 6 6 6
Current Date: 2023-04-08 15:15:32 Functions: 100.0 % 1 1 1 1
Baseline: 15
Baseline Date: 2023-04-08 15:09:40
Legend: Lines: hit not hit

           TLA  Line data    Source code
       1                 : /*-------------------------------------------------------------------------
       2                 :  *
       3                 :  * walsender.h
       4                 :  *    Exports from replication/walsender.c.
       5                 :  *
       6                 :  * Portions Copyright (c) 2010-2023, 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 <signal.h>
      16                 : 
      17                 : /*
      18                 :  * What to do with a snapshot in create replication slot command.
      19                 :  */
      20                 : typedef enum
      21                 : {
      22                 :     CRS_EXPORT_SNAPSHOT,
      23                 :     CRS_NOEXPORT_SNAPSHOT,
      24                 :     CRS_USE_SNAPSHOT
      25                 : } CRSSnapshotAction;
      26                 : 
      27                 : /* global state */
      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;
      32                 : 
      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;
      37                 : 
      38                 : extern void InitWalSender(void);
      39                 : extern bool exec_replication_command(const char *cmd_string);
      40                 : extern void WalSndErrorCleanup(void);
      41                 : extern void WalSndResourceCleanup(bool isCommit);
      42                 : extern void WalSndSignals(void);
      43                 : extern Size WalSndShmemSize(void);
      44                 : extern void WalSndShmemInit(void);
      45                 : extern void WalSndWakeup(bool physical, bool logical);
      46                 : extern void WalSndInitStopping(void);
      47                 : extern void WalSndWaitStopping(void);
      48                 : extern void HandleWalSndInitStopping(void);
      49                 : extern 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                 :  */
      63                 : static inline void
      64 GNC      312498 : WalSndWakeupProcessRequests(bool physical, bool logical)
      65                 : {
      66          312498 :     if (wake_wal_senders)
      67                 :     {
      68          296561 :         wake_wal_senders = false;
      69          296561 :         if (max_wal_senders > 0)
      70          275145 :             WalSndWakeup(physical, logical);
      71                 :     }
      72          312498 : }
      73                 : 
      74                 : #endif                          /* _WALSENDER_H */
        

Generated by: LCOV version v1.16-55-g56c0a2a