gooderp18绿色标准版
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

76 lines
1.8KB

  1. /*-------------------------------------------------------------------------
  2. *
  3. * walsender.h
  4. * Exports from replication/walsender.c.
  5. *
  6. * Portions Copyright (c) 2010-2019, PostgreSQL Global Development Group
  7. *
  8. * src/include/replication/walsender.h
  9. *
  10. *-------------------------------------------------------------------------
  11. */
  12. #ifndef _WALSENDER_H
  13. #define _WALSENDER_H
  14. #include <signal.h>
  15. #include "fmgr.h"
  16. /*
  17. * What to do with a snapshot in create replication slot command.
  18. */
  19. typedef enum
  20. {
  21. CRS_EXPORT_SNAPSHOT,
  22. CRS_NOEXPORT_SNAPSHOT,
  23. CRS_USE_SNAPSHOT
  24. } CRSSnapshotAction;
  25. /* global state */
  26. extern bool am_walsender;
  27. extern bool am_cascading_walsender;
  28. extern bool am_db_walsender;
  29. extern bool wake_wal_senders;
  30. /* user-settable parameters */
  31. extern int max_wal_senders;
  32. extern int wal_sender_timeout;
  33. extern bool log_replication_commands;
  34. extern void InitWalSender(void);
  35. extern bool exec_replication_command(const char *query_string);
  36. extern void WalSndErrorCleanup(void);
  37. extern void WalSndSignals(void);
  38. extern Size WalSndShmemSize(void);
  39. extern void WalSndShmemInit(void);
  40. extern void WalSndWakeup(void);
  41. extern void WalSndInitStopping(void);
  42. extern void WalSndWaitStopping(void);
  43. extern void HandleWalSndInitStopping(void);
  44. extern void WalSndRqstFileReload(void);
  45. /*
  46. * Remember that we want to wakeup walsenders later
  47. *
  48. * This is separated from doing the actual wakeup because the writeout is done
  49. * while holding contended locks.
  50. */
  51. #define WalSndWakeupRequest() \
  52. do { wake_wal_senders = true; } while (0)
  53. /*
  54. * wakeup walsenders if there is work to be done
  55. */
  56. #define WalSndWakeupProcessRequests() \
  57. do \
  58. { \
  59. if (wake_wal_senders) \
  60. { \
  61. wake_wal_senders = false; \
  62. if (max_wal_senders > 0) \
  63. WalSndWakeup(); \
  64. } \
  65. } while (0)
  66. #endif /* _WALSENDER_H */
上海开阖软件有限公司 沪ICP备12045867号-1