diff options
Diffstat (limited to 'src/backend')
| -rw-r--r-- | src/backend/access/transam/xlog.c | 1 | ||||
| -rw-r--r-- | src/backend/libpq/pqsignal.c | 67 | ||||
| -rw-r--r-- | src/backend/main/main.c | 3 | ||||
| -rw-r--r-- | src/backend/port/win32/signal.c | 8 | ||||
| -rw-r--r-- | src/backend/port/win32/timer.c | 2 | ||||
| -rw-r--r-- | src/backend/replication/walsender.c | 1 | ||||
| -rw-r--r-- | src/backend/utils/misc/timeout.c | 1 |
7 files changed, 9 insertions, 74 deletions
diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index a02eebcb27..8e7341ba45 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -35,7 +35,6 @@ #include "catalog/catversion.h" #include "catalog/pg_control.h" #include "catalog/pg_database.h" -#include "libpq/pqsignal.h" #include "miscadmin.h" #include "pgstat.h" #include "postmaster/bgwriter.h" diff --git a/src/backend/libpq/pqsignal.c b/src/backend/libpq/pqsignal.c index d088daeb7d..b621ba7add 100644 --- a/src/backend/libpq/pqsignal.c +++ b/src/backend/libpq/pqsignal.c @@ -1,8 +1,7 @@ /*------------------------------------------------------------------------- * * pqsignal.c - * reliable BSD-style signal(2) routine stolen from RWW who stole it - * from Stevens... + * Backend signal(2) support (see also src/port/pqsignal.c) * * Portions Copyright (c) 1996-2013, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California @@ -11,38 +10,11 @@ * IDENTIFICATION * src/backend/libpq/pqsignal.c * - * NOTES - * This shouldn't be in libpq, but the monitor and some other - * things need it... - * - * A NOTE ABOUT SIGNAL HANDLING ACROSS THE VARIOUS PLATFORMS. - * - * pg_config.h defines the macro HAVE_POSIX_SIGNALS for some platforms and - * not for others. This file and pqsignal.h use that macro to decide - * how to handle signalling. - * - * signal(2) handling - this is here because it affects some of - * the frontend commands as well as the backend processes. - * - * Ultrix and SunOS provide BSD signal(2) semantics by default. - * - * SVID2 and POSIX signal(2) semantics differ from BSD signal(2) - * semantics. We can use the POSIX sigaction(2) on systems that - * allow us to request restartable signals (SA_RESTART). - * - * Some systems don't allow restartable signals at all unless we - * link to a special BSD library. - * - * We devoutly hope that there aren't any systems that provide - * neither POSIX signals nor BSD signals. The alternative - * is to do signal-handler reinstallation, which doesn't work well - * at all. - * ------------------------------------------------------------------------*/ + * ------------------------------------------------------------------------ + */ #include "postgres.h" -#include <signal.h> - #include "libpq/pqsignal.h" @@ -145,36 +117,3 @@ pqinitmask(void) sigmask(SIGWINCH) | sigmask(SIGFPE); #endif } - - -/* Win32 signal handling is in backend/port/win32/signal.c */ -#ifndef WIN32 - -/* - * Set up a signal handler - */ -pqsigfunc -pqsignal(int signo, pqsigfunc func) -{ -#if !defined(HAVE_POSIX_SIGNALS) - return signal(signo, func); -#else - struct sigaction act, - oact; - - act.sa_handler = func; - sigemptyset(&act.sa_mask); - act.sa_flags = 0; - if (signo != SIGALRM) - act.sa_flags |= SA_RESTART; -#ifdef SA_NOCLDSTOP - if (signo == SIGCHLD) - act.sa_flags |= SA_NOCLDSTOP; -#endif - if (sigaction(signo, &act, &oact) < 0) - return SIG_ERR; - return oact.sa_handler; -#endif /* !HAVE_POSIX_SIGNALS */ -} - -#endif /* WIN32 */ diff --git a/src/backend/main/main.c b/src/backend/main/main.c index 1173bda620..8d4218e00b 100644 --- a/src/backend/main/main.c +++ b/src/backend/main/main.c @@ -41,9 +41,6 @@ #include "utils/help_config.h" #include "utils/pg_locale.h" #include "utils/ps_status.h" -#ifdef WIN32 -#include "libpq/pqsignal.h" -#endif const char *progname; diff --git a/src/backend/port/win32/signal.c b/src/backend/port/win32/signal.c index 2c406bc7f2..8b2d98141b 100644 --- a/src/backend/port/win32/signal.c +++ b/src/backend/port/win32/signal.c @@ -13,7 +13,7 @@ #include "postgres.h" -#include <libpq/pqsignal.h> +#include "libpq/pqsignal.h" /* * These are exported for use by the UNBLOCKED_SIGNAL_QUEUE() macro. @@ -158,7 +158,11 @@ pqsigsetmask(int mask) } -/* signal manipulation. Only called on main thread, no sync required */ +/* + * Unix-like signal handler installation + * + * Only called on main thread, no sync required + */ pqsigfunc pqsignal(int signum, pqsigfunc handler) { diff --git a/src/backend/port/win32/timer.c b/src/backend/port/win32/timer.c index 1394104456..333beb44a8 100644 --- a/src/backend/port/win32/timer.c +++ b/src/backend/port/win32/timer.c @@ -18,8 +18,6 @@ #include "postgres.h" -#include "libpq/pqsignal.h" - /* Communication area for inter-thread communication */ typedef struct timerCA diff --git a/src/backend/replication/walsender.c b/src/backend/replication/walsender.c index 266cd64f6f..c05bb1e081 100644 --- a/src/backend/replication/walsender.c +++ b/src/backend/replication/walsender.c @@ -49,7 +49,6 @@ #include "funcapi.h" #include "libpq/libpq.h" #include "libpq/pqformat.h" -#include "libpq/pqsignal.h" #include "miscadmin.h" #include "nodes/replnodes.h" #include "replication/basebackup.h" diff --git a/src/backend/utils/misc/timeout.c b/src/backend/utils/misc/timeout.c index 2ee6e00ed2..b5a3c8f5df 100644 --- a/src/backend/utils/misc/timeout.c +++ b/src/backend/utils/misc/timeout.c @@ -16,7 +16,6 @@ #include <sys/time.h> -#include "libpq/pqsignal.h" #include "storage/proc.h" #include "utils/timeout.h" #include "utils/timestamp.h" |
