PostgreSQL Source Code: src/include/storage/ipc.h Source File (original) (raw)

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18#ifndef IPC_H

19#define IPC_H

20

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47#define PG_ENSURE_ERROR_CLEANUP(cleanup_function, arg) \

48 do { \

49 before_shmem_exit(cleanup_function, arg); \

50 PG_TRY()

51

52#define PG_END_ENSURE_ERROR_CLEANUP(cleanup_function, arg) \

53 cancel_before_shmem_exit(cleanup_function, arg); \

54 PG_CATCH(); \

55 { \

56 cancel_before_shmem_exit(cleanup_function, arg); \

57 cleanup_function (0, arg); \

58 PG_RE_THROW(); \

59 } \

60 PG_END_TRY(); \

61 } while (0)

62

63

64

67

76

77

79

82#ifdef EXEC_BACKEND

83extern void AttachSharedMemoryStructs(void);

84#endif

86

87#endif

void check_on_shmem_exit_lists_are_empty(void)

PGDLLIMPORT bool shmem_exit_inprogress

void on_shmem_exit(pg_on_exit_callback function, Datum arg)

void on_proc_exit(pg_on_exit_callback function, Datum arg)

void cancel_before_shmem_exit(pg_on_exit_callback function, Datum arg)

pg_noreturn void proc_exit(int code)

void(* shmem_startup_hook_type)(void)

void(* pg_on_exit_callback)(int code, Datum arg)

void shmem_exit(int code)

PGDLLIMPORT shmem_startup_hook_type shmem_startup_hook

void before_shmem_exit(pg_on_exit_callback function, Datum arg)

Size CalculateShmemSize(int *num_semaphores)

void InitializeShmemGUCs(void)

void CreateSharedMemoryAndSemaphores(void)

PGDLLIMPORT bool proc_exit_inprogress

on_exit_nicely_callback function