Add num_done counter to the pg_stat_checkpointer view.
[pgsql.git] / src / interfaces / libpq / legacy-pqsignal.c
blobe8c716ad0fc0655ce58afdc1d6a81e22976a7d5d
1 /*-------------------------------------------------------------------------
3 * legacy-pqsignal.c
4 * reliable BSD-style signal(2) routine stolen from RWW who stole it
5 * from Stevens...
7 * Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
8 * Portions Copyright (c) 1994, Regents of the University of California
11 * IDENTIFICATION
12 * src/interfaces/libpq/legacy-pqsignal.c
14 *-------------------------------------------------------------------------
16 #include "postgres_fe.h"
18 #include <signal.h>
22 * This version of pqsignal() exists only because pre-9.3 releases
23 * of libpq exported pqsignal(), and some old client programs still
24 * depend on that. (Since 9.3, clients are supposed to get it from
25 * libpgport instead.)
27 * Because it is only intended for backwards compatibility, we freeze it
28 * with the semantics it had in 9.2; in particular, this has different
29 * behavior for SIGALRM than the version in src/port/pqsignal.c.
31 * libpq itself does not use this.
33 pqsigfunc
34 pqsignal(int signo, pqsigfunc func)
36 #ifndef WIN32
37 struct sigaction act,
38 oact;
40 act.sa_handler = func;
41 sigemptyset(&act.sa_mask);
42 act.sa_flags = 0;
43 if (signo != SIGALRM)
44 act.sa_flags |= SA_RESTART;
45 #ifdef SA_NOCLDSTOP
46 if (signo == SIGCHLD)
47 act.sa_flags |= SA_NOCLDSTOP;
48 #endif
49 if (sigaction(signo, &act, &oact) < 0)
50 return SIG_ERR;
51 return oact.sa_handler;
52 #else /* WIN32 */
53 return signal(signo, func);
54 #endif