1
/*-------------------------------------------------------------------------
4
* Routines for interprocess signalling
7
* Portions Copyright (c) 1996-2011, PostgreSQL Global Development Group
8
* Portions Copyright (c) 1994, Regents of the University of California
10
* src/include/storage/procsignal.h
12
*-------------------------------------------------------------------------
17
#include "storage/backendid.h"
21
* Reasons for signalling a Postgres child process (a backend or an auxiliary
22
* process, like bgwriter). We can cope with concurrent signals for different
23
* reasons. However, if the same reason is signaled multiple times in quick
24
* succession, the process is likely to observe only one notification of it.
25
* This is okay for the present uses.
27
* Also, because of race conditions, it's important that all the signals be
28
* defined so that no harm is done if a process mistakenly receives one.
32
PROCSIG_CATCHUP_INTERRUPT, /* sinval catchup interrupt */
33
PROCSIG_NOTIFY_INTERRUPT, /* listen/notify interrupt */
35
/* Recovery conflict reasons */
36
PROCSIG_RECOVERY_CONFLICT_DATABASE,
37
PROCSIG_RECOVERY_CONFLICT_TABLESPACE,
38
PROCSIG_RECOVERY_CONFLICT_LOCK,
39
PROCSIG_RECOVERY_CONFLICT_SNAPSHOT,
40
PROCSIG_RECOVERY_CONFLICT_BUFFERPIN,
41
PROCSIG_RECOVERY_CONFLICT_STARTUP_DEADLOCK,
43
NUM_PROCSIGNALS /* Must be last! */
47
* prototypes for functions in procsignal.c
49
extern Size ProcSignalShmemSize(void);
50
extern void ProcSignalShmemInit(void);
52
extern void ProcSignalInit(int pss_idx);
53
extern int SendProcSignal(pid_t pid, ProcSignalReason reason,
56
extern void procsignal_sigusr1_handler(SIGNAL_ARGS);
58
#endif /* PROCSIGNAL_H */