|
1 | 1 | /*-------------------------------------------------------------------------
|
2 | 2 | *
|
3 | 3 | * pqsignal.c
|
4 |
| - * reliable BSD-style signal(2) routine stolen from RWW who stole it |
5 |
| - * from Stevens... |
| 4 | + * Backend signal(2) support (see also src/port/pqsignal.c) |
6 | 5 | *
|
7 | 6 | * Portions Copyright (c) 1996-2013, PostgreSQL Global Development Group
|
8 | 7 | * Portions Copyright (c) 1994, Regents of the University of California
|
|
11 | 10 | * IDENTIFICATION
|
12 | 11 | * src/backend/libpq/pqsignal.c
|
13 | 12 | *
|
14 |
| - * NOTES |
15 |
| - *This shouldn't be in libpq, but the monitor and some other |
16 |
| - *things need it... |
17 |
| - * |
18 |
| - *A NOTE ABOUT SIGNAL HANDLING ACROSS THE VARIOUS PLATFORMS. |
19 |
| - * |
20 |
| - *pg_config.h defines the macro HAVE_POSIX_SIGNALS for some platforms and |
21 |
| - *not for others. This file and pqsignal.h use that macro to decide |
22 |
| - *how to handle signalling. |
23 |
| - * |
24 |
| - *signal(2) handling - this is here because it affects some of |
25 |
| - *the frontend commands as well as the backend processes. |
26 |
| - * |
27 |
| - *Ultrix and SunOS provide BSD signal(2) semantics by default. |
28 |
| - * |
29 |
| - *SVID2 and POSIX signal(2) semantics differ from BSD signal(2) |
30 |
| - *semantics.We can use the POSIX sigaction(2) on systems that |
31 |
| - *allow us to request restartable signals (SA_RESTART). |
32 |
| - * |
33 |
| - *Some systems don't allow restartable signals at all unless we |
34 |
| - *link to a special BSD library. |
35 |
| - * |
36 |
| - *We devoutly hope that there aren't any systems that provide |
37 |
| - *neither POSIX signals nor BSD signals.The alternative |
38 |
| - *is to do signal-handler reinstallation, which doesn't work well |
39 |
| - *at all. |
40 |
| - * ------------------------------------------------------------------------*/ |
| 13 | + * ------------------------------------------------------------------------ |
| 14 | + */ |
41 | 15 |
|
42 | 16 | #include"postgres.h"
|
43 | 17 |
|
44 |
| -#include<signal.h> |
45 |
| - |
46 | 18 | #include"libpq/pqsignal.h"
|
47 | 19 |
|
48 | 20 |
|
@@ -145,36 +117,3 @@ pqinitmask(void)
|
145 | 117 | sigmask(SIGWINCH) |sigmask(SIGFPE);
|
146 | 118 | #endif
|
147 | 119 | }
|
148 |
| - |
149 |
| - |
150 |
| -/* Win32 signal handling is in backend/port/win32/signal.c */ |
151 |
| -#ifndefWIN32 |
152 |
| - |
153 |
| -/* |
154 |
| - * Set up a signal handler |
155 |
| - */ |
156 |
| -pqsigfunc |
157 |
| -pqsignal(intsigno,pqsigfuncfunc) |
158 |
| -{ |
159 |
| -#if !defined(HAVE_POSIX_SIGNALS) |
160 |
| -returnsignal(signo,func); |
161 |
| -#else |
162 |
| -structsigactionact, |
163 |
| -oact; |
164 |
| - |
165 |
| -act.sa_handler=func; |
166 |
| -sigemptyset(&act.sa_mask); |
167 |
| -act.sa_flags=0; |
168 |
| -if (signo!=SIGALRM) |
169 |
| -act.sa_flags |=SA_RESTART; |
170 |
| -#ifdefSA_NOCLDSTOP |
171 |
| -if (signo==SIGCHLD) |
172 |
| -act.sa_flags |=SA_NOCLDSTOP; |
173 |
| -#endif |
174 |
| -if (sigaction(signo,&act,&oact)<0) |
175 |
| -returnSIG_ERR; |
176 |
| -returnoact.sa_handler; |
177 |
| -#endif/* !HAVE_POSIX_SIGNALS */ |
178 |
| -} |
179 |
| - |
180 |
| -#endif/* WIN32 */ |