summaryrefslogtreecommitdiff
path: root/flup
diff options
context:
space:
mode:
authorAllan Saddi <allan@saddi.com>2006-01-05 20:42:02 +0000
committerAllan Saddi <allan@saddi.com>2006-01-05 20:42:02 +0000
commit6f8f99d9f8724c7536216eb095a0ca1f0e6f3633 (patch)
tree26f439d8f19daf9c65167b14d8e8d77d3d1c6cb1 /flup
parent8e6316ad62fafe56ff0776ce7718e9b293f61349 (diff)
downloadflup-6f8f99d9f8724c7536216eb095a0ca1f0e6f3633.tar.gz
Improve Windows compatibility by conditionally installing
SIGHUP handler.
Diffstat (limited to 'flup')
-rw-r--r--flup/server/preforkserver.py18
-rw-r--r--flup/server/threadedserver.py16
2 files changed, 22 insertions, 12 deletions
diff --git a/flup/server/preforkserver.py b/flup/server/preforkserver.py
index d8c32a0..795ff20 100644
--- a/flup/server/preforkserver.py
+++ b/flup/server/preforkserver.py
@@ -350,13 +350,17 @@ class PreforkServer(object):
pass
def _installSignalHandlers(self):
- """Installs signal handlers."""
- self._oldSIGs = [(x,signal.getsignal(x)) for x in
- (signal.SIGHUP, signal.SIGINT, signal.SIGTERM,
- signal.SIGCHLD)]
- signal.signal(signal.SIGHUP, self._hupHandler)
- signal.signal(signal.SIGINT, self._intHandler)
- signal.signal(signal.SIGTERM, self._intHandler)
+ supportedSignals = [signal.SIGINT, signal.SIGTERM]
+ if hasattr(signal, 'SIGHUP'):
+ supportedSignals.append(signal.SIGHUP)
+
+ self._oldSIGs = [(x,signal.getsignal(x)) for x in supportedSignals]
+
+ for sig in supportedSignals:
+ if hasattr(signal, 'SIGHUP') and sig == signal.SIGHUP:
+ signal.signal(sig, self._hupHandler)
+ else:
+ signal.signal(sig, self._intHandler)
def _restoreSignalHandlers(self):
"""Restores previous signal handlers."""
diff --git a/flup/server/threadedserver.py b/flup/server/threadedserver.py
index a61db19..60c1bfa 100644
--- a/flup/server/threadedserver.py
+++ b/flup/server/threadedserver.py
@@ -122,11 +122,17 @@ class ThreadedServer(object):
self._keepGoing = False
def _installSignalHandlers(self):
- self._oldSIGs = [(x,signal.getsignal(x)) for x in
- (signal.SIGHUP, signal.SIGINT, signal.SIGTERM)]
- signal.signal(signal.SIGHUP, self._hupHandler)
- signal.signal(signal.SIGINT, self._intHandler)
- signal.signal(signal.SIGTERM, self._intHandler)
+ supportedSignals = [signal.SIGINT, signal.SIGTERM]
+ if hasattr(signal, 'SIGHUP'):
+ supportedSignals.append(signal.SIGHUP)
+
+ self._oldSIGs = [(x,signal.getsignal(x)) for x in supportedSignals]
+
+ for sig in supportedSignals:
+ if hasattr(signal, 'SIGHUP') and sig == signal.SIGHUP:
+ signal.signal(sig, self._hupHandler)
+ else:
+ signal.signal(sig, self._intHandler)
def _restoreSignalHandlers(self):
for signum,handler in self._oldSIGs: