diff options
author | Thomas Munro <tmunro@postgresql.org> | 2022-11-09 13:05:16 +1300 |
---|---|---|
committer | Thomas Munro <tmunro@postgresql.org> | 2022-11-09 13:06:31 +1300 |
commit | b28ac1d24db44ae763a57688e7a559352002badc (patch) | |
tree | 670e399144d8747435c2aa2397481d7e074cfdaf /src/port | |
parent | 6bbd8b73857a337e3aba2f6cdcaca6355b4c2b51 (diff) | |
download | postgresql-b28ac1d24db44ae763a57688e7a559352002badc.tar.gz |
Provide sigaction() for Windows.
Commit 9abb2bfc left behind code to block signals inside signal
handlers on Windows, because our signal porting layer didn't have
sigaction(). Provide a minimal implementation that is capable of
blocking signals, to get rid of platform differences. See also related
commit c94ae9d8.
Discussion: https://postgr.es/m/CA%2BhUKGKKKfcgx6jzok9AYenp2TNti_tfs8FMoJpL8%2B0Gsy%3D%3D_A%40mail.gmail.com
Diffstat (limited to 'src/port')
-rw-r--r-- | src/port/pqsignal.c | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/src/port/pqsignal.c b/src/port/pqsignal.c index 6cb0320edb..01940ca398 100644 --- a/src/port/pqsignal.c +++ b/src/port/pqsignal.c @@ -29,7 +29,9 @@ #include <signal.h> -#if !defined(WIN32) || defined(FRONTEND) +#ifndef FRONTEND +#include "libpq/pqsignal.h" +#endif /* * Set up a signal handler, with SA_RESTART, for signal "signo" @@ -39,7 +41,7 @@ pqsigfunc pqsignal(int signo, pqsigfunc func) { -#ifndef WIN32 +#if !(defined(WIN32) && defined(FRONTEND)) struct sigaction act, oact; @@ -53,9 +55,8 @@ pqsignal(int signo, pqsigfunc func) if (sigaction(signo, &act, &oact) < 0) return SIG_ERR; return oact.sa_handler; -#else /* WIN32 */ +#else + /* Forward to Windows native signal system. */ return signal(signo, func); #endif } - -#endif /* !defined(WIN32) || defined(FRONTEND) */ |