Commit f333204b authored by Tom Lane's avatar Tom Lane

Actually, it's not that hard to merge the Windows pqsignal code ...

... just need to typedef sigset_t and provide sigemptyset/sigfillset,
which are easy enough.
parent 2c713d6e
......@@ -18,15 +18,10 @@
#include "libpq/pqsignal.h"
#ifndef WIN32
/* Global variables */
sigset_t UnBlockSig,
BlockSig,
StartupBlockSig;
#else
int UnBlockSig,
BlockSig,
StartupBlockSig;
#endif
/*
......@@ -45,8 +40,6 @@ int UnBlockSig,
void
pqinitmask(void)
{
#ifndef WIN32
sigemptyset(&UnBlockSig);
/* First set all signals, then clear some. */
......@@ -101,19 +94,4 @@ pqinitmask(void)
#ifdef SIGALRM
sigdelset(&StartupBlockSig, SIGALRM);
#endif
#else /* WIN32 */
/* Set the signals we want. */
UnBlockSig = 0;
BlockSig = sigmask(SIGQUIT) |
sigmask(SIGTERM) | sigmask(SIGALRM) |
/* common signals between two */
sigmask(SIGHUP) |
sigmask(SIGINT) | sigmask(SIGUSR1) |
sigmask(SIGUSR2) | sigmask(SIGCHLD) |
sigmask(SIGWINCH) | sigmask(SIGFPE);
StartupBlockSig = sigmask(SIGHUP) |
sigmask(SIGINT) | sigmask(SIGUSR1) |
sigmask(SIGUSR2) | sigmask(SIGCHLD) |
sigmask(SIGWINCH) | sigmask(SIGFPE);
#endif
}
......@@ -16,27 +16,24 @@
#include <signal.h>
#ifndef WIN32
extern sigset_t UnBlockSig,
BlockSig,
StartupBlockSig;
#define PG_SETMASK(mask) sigprocmask(SIG_SETMASK, mask, NULL)
#else /* WIN32 */
/*
* Windows doesn't provide the POSIX signal API, so we use something
* approximating the old BSD signal API.
*/
extern int UnBlockSig,
BlockSig,
StartupBlockSig;
#else
/* Emulate POSIX sigset_t APIs on Windows */
typedef int sigset_t;
extern int pqsigsetmask(int mask);
#define PG_SETMASK(mask) pqsigsetmask(*(mask))
#define sigemptyset(set) (*(set) = 0)
#define sigfillset(set) (*(set) = ~0)
#define sigaddset(set, signum) (*(set) |= (sigmask(signum)))
#define sigdelset(set, signum) (*(set) &= ~(sigmask(signum)))
#endif /* WIN32 */
extern sigset_t UnBlockSig,
BlockSig,
StartupBlockSig;
extern void pqinitmask(void);
#endif /* PQSIGNAL_H */
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment