#ifndef PROCSIGNAL_H
#define PROCSIGNAL_H
#include "storage/backendid.h"
typedef enum
{
PROCSIG_CATCHUP_INTERRUPT,
PROCSIG_NOTIFY_INTERRUPT,
PROCSIG_PARALLEL_MESSAGE,
PROCSIG_WALSND_INIT_STOPPING,
PROCSIG_BARRIER,
PROCSIG_RECOVERY_CONFLICT_DATABASE,
PROCSIG_RECOVERY_CONFLICT_TABLESPACE,
PROCSIG_RECOVERY_CONFLICT_LOCK,
PROCSIG_RECOVERY_CONFLICT_SNAPSHOT,
PROCSIG_RECOVERY_CONFLICT_BUFFERPIN,
PROCSIG_RECOVERY_CONFLICT_STARTUP_DEADLOCK,
NUM_PROCSIGNALS
} ProcSignalReason;
typedef enum
{
PROCSIGNAL_BARRIER_PLACEHOLDER = 0
} ProcSignalBarrierType;
extern Size ProcSignalShmemSize(void);
extern void ProcSignalShmemInit(void);
extern void ProcSignalInit(int pss_idx);
extern int SendProcSignal(pid_t pid, ProcSignalReason reason,
BackendId backendId);
extern uint64 EmitProcSignalBarrier(ProcSignalBarrierType type);
extern void WaitForProcSignalBarrier(uint64 generation);
extern void ProcessProcSignalBarrier(void);
extern void procsignal_sigusr1_handler(SIGNAL_ARGS);
#endif