124{
125#if !(defined(WIN32) && defined(FRONTEND))
126 struct sigaction act;
127#endif
128
131
132 if (func != SIG_IGN && func != SIG_DFL)
133 {
136 }
137
138#if !(defined(WIN32) && defined(FRONTEND))
139 act.sa_handler = func;
140 sigemptyset(&act.sa_mask);
141 act.sa_flags = SA_RESTART;
142#ifdef SA_NOCLDSTOP
144 act.sa_flags |= SA_NOCLDSTOP;
145#endif
146 if (sigaction(signo, &act, NULL) < 0)
148#else
149
150 if (signal(signo, func) == SIG_ERR)
152#endif
153}
Assert(PointerIsAligned(start, uint64))
static void wrapper_handler(SIGNAL_ARGS)
static volatile pqsigfunc pqsignal_handlers[PG_NSIG]