47#define PG_ENSURE_ERROR_CLEANUP(cleanup_function, arg) \
49 before_shmem_exit(cleanup_function, arg); \
52#define PG_END_ENSURE_ERROR_CLEANUP(cleanup_function, arg) \
53 cancel_before_shmem_exit(cleanup_function, arg); \
56 cancel_before_shmem_exit(cleanup_function, arg); \
57 cleanup_function (0, arg); \
83extern void AttachSharedMemoryStructs(
void);
#define pg_attribute_noreturn()
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)
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 proc_exit(int code) pg_attribute_noreturn()
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