Team Ai
Datasetpublic

codekingpro/portable-devtools

sourceHugging Faceupdated 5mo agoView on Hugging Face
1likes14kdownloads
procsignal.h74 linesDownload Raw Back to storage
1/*-------------------------------------------------------------------------2 *3 * procsignal.h4 *	  Routines for interprocess signaling5 *6 *7 * Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group8 * Portions Copyright (c) 1994, Regents of the University of California9 *10 * src/include/storage/procsignal.h11 *12 *-------------------------------------------------------------------------13 */14#ifndef PROCSIGNAL_H15#define PROCSIGNAL_H16 17#include "storage/backendid.h"18 19 20/*21 * Reasons for signaling a Postgres child process (a backend or an auxiliary22 * process, like checkpointer).  We can cope with concurrent signals for different23 * reasons.  However, if the same reason is signaled multiple times in quick24 * succession, the process is likely to observe only one notification of it.25 * This is okay for the present uses.26 *27 * Also, because of race conditions, it's important that all the signals be28 * defined so that no harm is done if a process mistakenly receives one.29 */30typedef enum31{32	PROCSIG_CATCHUP_INTERRUPT,	/* sinval catchup interrupt */33	PROCSIG_NOTIFY_INTERRUPT,	/* listen/notify interrupt */34	PROCSIG_PARALLEL_MESSAGE,	/* message from cooperating parallel backend */35	PROCSIG_WALSND_INIT_STOPPING,	/* ask walsenders to prepare for shutdown  */36	PROCSIG_BARRIER,			/* global barrier interrupt  */37	PROCSIG_LOG_MEMORY_CONTEXT, /* ask backend to log the memory contexts */38	PROCSIG_PARALLEL_APPLY_MESSAGE, /* Message from parallel apply workers */39 40	/* Recovery conflict reasons */41	PROCSIG_RECOVERY_CONFLICT_DATABASE,42	PROCSIG_RECOVERY_CONFLICT_TABLESPACE,43	PROCSIG_RECOVERY_CONFLICT_LOCK,44	PROCSIG_RECOVERY_CONFLICT_SNAPSHOT,45	PROCSIG_RECOVERY_CONFLICT_LOGICALSLOT,46	PROCSIG_RECOVERY_CONFLICT_BUFFERPIN,47	PROCSIG_RECOVERY_CONFLICT_STARTUP_DEADLOCK,48 49	NUM_PROCSIGNALS				/* Must be last! */50} ProcSignalReason;51 52typedef enum53{54	PROCSIGNAL_BARRIER_SMGRRELEASE	/* ask smgr to close files */55} ProcSignalBarrierType;56 57/*58 * prototypes for functions in procsignal.c59 */60extern Size ProcSignalShmemSize(void);61extern void ProcSignalShmemInit(void);62 63extern void ProcSignalInit(int pss_idx);64extern int	SendProcSignal(pid_t pid, ProcSignalReason reason,65						   BackendId backendId);66 67extern uint64 EmitProcSignalBarrier(ProcSignalBarrierType type);68extern void WaitForProcSignalBarrier(uint64 generation);69extern void ProcessProcSignalBarrier(void);70 71extern void procsignal_sigusr1_handler(SIGNAL_ARGS);72 73#endif							/* PROCSIGNAL_H */74 
codekingpro/portable-devtools · Team Ai