summaryrefslogtreecommitdiff
path: root/src/interfaces/libpq/pqsignal.c
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2013-03-17 12:06:42 -0400
committerTom Lane <tgl@sss.pgh.pa.us>2013-03-17 12:06:42 -0400
commitda5aeccf64b37a8e9bd3cb605848590595dbcbf8 (patch)
tree5e16817356f6ae9b0bc3bf29a7d814da9a40bf8a /src/interfaces/libpq/pqsignal.c
parentd43837d03067487560af481474ae985df894f786 (diff)
downloadpostgresql-da5aeccf64b37a8e9bd3cb605848590595dbcbf8.tar.gz
Move pqsignal() to libpgport.
We had two copies of this function in the backend and libpq, which was already pretty bogus, but it turns out that we need it in some other programs that don't use libpq (such as pg_test_fsync). So put it where it probably should have been all along. The signal-mask-initialization support in src/backend/libpq/pqsignal.c stays where it is, though, since we only need that in the backend.
Diffstat (limited to 'src/interfaces/libpq/pqsignal.c')
-rw-r--r--src/interfaces/libpq/pqsignal.c49
1 files changed, 0 insertions, 49 deletions
diff --git a/src/interfaces/libpq/pqsignal.c b/src/interfaces/libpq/pqsignal.c
deleted file mode 100644
index 26e203b669..0000000000
--- a/src/interfaces/libpq/pqsignal.c
+++ /dev/null
@@ -1,49 +0,0 @@
-/*-------------------------------------------------------------------------
- *
- * pqsignal.c
- * reliable BSD-style signal(2) routine stolen from RWW who stole it
- * from Stevens...
- *
- * Portions Copyright (c) 1996-2013, PostgreSQL Global Development Group
- * Portions Copyright (c) 1994, Regents of the University of California
- *
- *
- * IDENTIFICATION
- * src/interfaces/libpq/pqsignal.c
- *
- * NOTES
- * This shouldn't be in libpq, but the monitor and some other
- * things need it...
- *
- *-------------------------------------------------------------------------
- */
-#include "postgres_fe.h"
-
-#include <signal.h>
-
-#include "pqsignal.h"
-
-
-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 */
-}