|
PostgreSQL Source Code git master
|
#include "postgres.h"#include <signal.h>#include <unistd.h>#include "miscadmin.h"#include "postmaster/postmaster.h"#include "replication/walsender.h"#include "storage/ipc.h"#include "storage/pmsignal.h"#include "storage/shmem.h"#include "storage/subsystems.h"#include "utils/memutils.h"
Go to the source code of this file.
Data Structures | |
| struct | PMSignalData |
Macros | |
| #define | PM_CHILD_UNUSED 0 /* these values must fit in sig_atomic_t */ |
| #define | PM_CHILD_ASSIGNED 1 |
| #define | PM_CHILD_ACTIVE 2 |
| #define | PM_CHILD_WALSENDER 3 |
Functions | |
| static void | PMSignalShmemRequest (void *) |
| static void | PMSignalShmemInit (void *) |
| static void | MarkPostmasterChildInactive (int code, Datum arg) |
| void | SendPostmasterSignal (PMSignalReason reason) |
| bool | CheckPostmasterSignal (PMSignalReason reason) |
| void | SetQuitSignalReason (QuitSignalReason reason) |
| QuitSignalReason | GetQuitSignalReason (void) |
| void | MarkPostmasterChildSlotAssigned (int slot) |
| bool | MarkPostmasterChildSlotUnassigned (int slot) |
| bool | IsPostmasterChildWalSender (int slot) |
| void | RegisterPostmasterChildActive (void) |
| void | MarkPostmasterChildWalSender (void) |
| bool | PostmasterIsAliveInternal (void) |
| void | PostmasterDeathSignalInit (void) |
Variables | |
| NON_EXEC_STATIC volatile PMSignalData * | PMSignalState = NULL |
| const ShmemCallbacks | PMSignalShmemCallbacks |
| static int | num_child_flags |
| #define PM_CHILD_ACTIVE 2 |
Definition at line 69 of file pmsignal.c.
| #define PM_CHILD_ASSIGNED 1 |
Definition at line 68 of file pmsignal.c.
Definition at line 67 of file pmsignal.c.
| #define PM_CHILD_WALSENDER 3 |
Definition at line 70 of file pmsignal.c.
| bool CheckPostmasterSignal | ( | PMSignalReason | reason | ) |
Definition at line 181 of file pmsignal.c.
References PMSignalData::PMSignalFlags, and PMSignalState.
Referenced by process_pm_pmsignal().
| QuitSignalReason GetQuitSignalReason | ( | void | ) |
Definition at line 212 of file pmsignal.c.
References fb(), IsUnderPostmaster, PMQUIT_NOT_SENT, PMSignalState, and PMSignalData::sigquit_reason.
Referenced by quickdie().
Definition at line 270 of file pmsignal.c.
References Assert, num_child_flags, PM_CHILD_WALSENDER, PMSignalData::PMChildFlags, and PMSignalState.
Referenced by CountChildren(), and SignalChildren().
Definition at line 325 of file pmsignal.c.
References Assert, fb(), MyPMChildSlot, num_child_flags, PM_CHILD_ACTIVE, PM_CHILD_ASSIGNED, PM_CHILD_WALSENDER, PMSignalData::PMChildFlags, and PMSignalState.
Referenced by RegisterPostmasterChildActive().
Definition at line 229 of file pmsignal.c.
References Assert, elog, FATAL, num_child_flags, PM_CHILD_ASSIGNED, PM_CHILD_UNUSED, PMSignalData::PMChildFlags, and PMSignalState.
Referenced by AssignPostmasterChildSlot().
Definition at line 248 of file pmsignal.c.
References Assert, num_child_flags, PM_CHILD_ASSIGNED, PM_CHILD_UNUSED, PMSignalData::PMChildFlags, PMSignalState, and result.
Referenced by ReleasePostmasterChildSlot().
Definition at line 308 of file pmsignal.c.
References am_walsender, Assert, fb(), MyPMChildSlot, num_child_flags, PM_CHILD_ACTIVE, PM_CHILD_WALSENDER, PMSignalData::PMChildFlags, and PMSignalState.
Referenced by InitWalSender().
Definition at line 153 of file pmsignal.c.
References Assert, PMSignalData::num_child_flags, num_child_flags, and PMSignalState.
Definition at line 138 of file pmsignal.c.
References add_size(), fb(), MaxLivePostmasterChildren(), mul_size(), name, num_child_flags, PMSignalState, and ShmemRequestStruct.
Definition at line 406 of file pmsignal.c.
References elog, ERROR, fb(), and pqsignal.
Referenced by InitPostmasterChild().
Definition at line 345 of file pmsignal.c.
References EAGAIN, elog, EWOULDBLOCK, FATAL, fb(), postmaster_alive_fds, POSTMASTER_FD_WATCH, and read.
Referenced by WaitEventSetWaitBlock().
Definition at line 289 of file pmsignal.c.
References Assert, fb(), MarkPostmasterChildInactive(), MyPMChildSlot, num_child_flags, on_shmem_exit(), PM_CHILD_ACTIVE, PM_CHILD_ASSIGNED, PMSignalData::PMChildFlags, and PMSignalState.
Referenced by InitAuxiliaryProcess(), and InitProcess().
| void SendPostmasterSignal | ( | PMSignalReason | reason | ) |
Definition at line 164 of file pmsignal.c.
References IsUnderPostmaster, kill, PMSignalData::PMSignalFlags, PMSignalState, PostmasterPid, and SIGUSR1.
Referenced by AutoVacLauncherMain(), CheckpointerMain(), CheckRecoveryConsistency(), do_start_worker(), GetNewMultiXactId(), GetNewTransactionId(), InitWalSender(), PerformWalRecovery(), pg_rotate_logfile(), pgaio_worker_request_grow(), RegisterDynamicBackgroundWorker(), RequestXLogStreaming(), SetMultiXactIdLimit(), SetTransactionIdLimit(), TerminateBackgroundWorker(), and TerminateBackgroundWorkersForDatabase().
| void SetQuitSignalReason | ( | QuitSignalReason | reason | ) |
Definition at line 201 of file pmsignal.c.
References PMSignalState, and PMSignalData::sigquit_reason.
Referenced by HandleFatalError(), and process_pm_shutdown_request().
|
static |
Definition at line 100 of file pmsignal.c.
Referenced by IsPostmasterChildWalSender(), MarkPostmasterChildInactive(), MarkPostmasterChildSlotAssigned(), MarkPostmasterChildSlotUnassigned(), MarkPostmasterChildWalSender(), PMSignalShmemInit(), PMSignalShmemRequest(), and RegisterPostmasterChildActive().
| const ShmemCallbacks PMSignalShmemCallbacks |
Definition at line 90 of file pmsignal.c.
| NON_EXEC_STATIC volatile PMSignalData* PMSignalState = NULL |
Definition at line 85 of file pmsignal.c.
Referenced by CheckPostmasterSignal(), GetQuitSignalReason(), IsPostmasterChildWalSender(), MarkPostmasterChildInactive(), MarkPostmasterChildSlotAssigned(), MarkPostmasterChildSlotUnassigned(), MarkPostmasterChildWalSender(), PMSignalShmemInit(), PMSignalShmemRequest(), RegisterPostmasterChildActive(), SendPostmasterSignal(), and SetQuitSignalReason().