summaryrefslogtreecommitdiff
path: root/websockify
diff options
context:
space:
mode:
authorSolly Ross <sross@redhat.com>2014-01-30 17:24:42 -0500
committerPierre Ossman <ossman@cendio.se>2017-06-15 14:23:29 +0200
commitddcec961ec16aeec76e232684b89ea33ef3e0657 (patch)
tree9774643038cefd78845448625759a05110e2528d /websockify
parentd029e451cfb40948e0e7a2f9bceb1fe4188b5fab (diff)
downloadwebsockify-ddcec961ec16aeec76e232684b89ea33ef3e0657.tar.gz
Work around lack of SIGCHLD on Windows
This only enables the SIGCHLD handler if SIGCHLD exists, such that platforms without SIGCHLD (such as windows) can still run websockify natively. See #108
Diffstat (limited to 'websockify')
-rw-r--r--websockify/websockifyserver.py6
1 files changed, 4 insertions, 2 deletions
diff --git a/websockify/websockifyserver.py b/websockify/websockifyserver.py
index 01004cc..055bb12 100644
--- a/websockify/websockifyserver.py
+++ b/websockify/websockifyserver.py
@@ -684,13 +684,15 @@ class WebSockifyServer(object):
original_signals = {
signal.SIGINT: signal.getsignal(signal.SIGINT),
signal.SIGTERM: signal.getsignal(signal.SIGTERM),
- signal.SIGCHLD: signal.getsignal(signal.SIGCHLD),
}
+ if getattr(signal, 'SIGCHLD', None) is not None:
+ original_signals[signal.SIGCHLD] = signal.getsignal(signal.SIGCHLD),
signal.signal(signal.SIGINT, self.do_SIGINT)
signal.signal(signal.SIGTERM, self.do_SIGTERM)
# make sure that _cleanup is called when children die
# by calling active_children on SIGCHLD
- signal.signal(signal.SIGCHLD, self.multiprocessing_SIGCHLD)
+ if getattr(signal, 'SIGCHLD', None) is not None:
+ signal.signal(signal.SIGCHLD, self.multiprocessing_SIGCHLD)
last_active_time = self.launch_time
try: