1
/*-------------------------------------------------------------------------
4
* prototypes for the reliable BSD-style signal(2) routine.
7
* Portions Copyright (c) 1996-2011, PostgreSQL Global Development Group
8
* Portions Copyright (c) 1994, Regents of the University of California
10
* src/include/libpq/pqsignal.h
13
* This shouldn't be in libpq, but the monitor and some other
16
*-------------------------------------------------------------------------
23
#ifdef HAVE_SIGPROCMASK
24
extern sigset_t UnBlockSig,
28
#define PG_SETMASK(mask) sigprocmask(SIG_SETMASK, mask, NULL)
29
#else /* not HAVE_SIGPROCMASK */
30
extern int UnBlockSig,
35
#define PG_SETMASK(mask) sigsetmask(*((int*)(mask)))
37
#define PG_SETMASK(mask) pqsigsetmask(*((int*)(mask)))
38
int pqsigsetmask(int mask);
41
#define sigaddset(set, signum) (*(set) |= (sigmask(signum)))
42
#define sigdelset(set, signum) (*(set) &= ~(sigmask(signum)))
43
#endif /* not HAVE_SIGPROCMASK */
45
typedef void (*pqsigfunc) (int);
47
extern void pqinitmask(void);
49
extern pqsigfunc pqsignal(int signo, pqsigfunc func);
51
#endif /* PQSIGNAL_H */