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); \ void before_shmem_exit(pg_on_exit_callback function, Datum arg)
#define pg_attribute_noreturn()
void on_shmem_exit(pg_on_exit_callback function, Datum arg)
PGDLLIMPORT shmem_startup_hook_type shmem_startup_hook
void check_on_shmem_exit_lists_are_empty(void)
PGDLLIMPORT bool proc_exit_inprogress
void proc_exit(int code) pg_attribute_noreturn()
void(* shmem_startup_hook_type)(void)
void shmem_exit(int code)
void on_proc_exit(pg_on_exit_callback function, Datum arg)
void(* pg_on_exit_callback)(int code, Datum arg)
PGDLLIMPORT bool shmem_exit_inprogress
void cancel_before_shmem_exit(pg_on_exit_callback function, Datum arg)
void CreateSharedMemoryAndSemaphores(void)