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
This commit is contained in:
parent
d029e451cf
commit
ddcec961ec
|
@ -684,13 +684,15 @@ class WebSockifyServer(object):
|
||||||
original_signals = {
|
original_signals = {
|
||||||
signal.SIGINT: signal.getsignal(signal.SIGINT),
|
signal.SIGINT: signal.getsignal(signal.SIGINT),
|
||||||
signal.SIGTERM: signal.getsignal(signal.SIGTERM),
|
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.SIGINT, self.do_SIGINT)
|
||||||
signal.signal(signal.SIGTERM, self.do_SIGTERM)
|
signal.signal(signal.SIGTERM, self.do_SIGTERM)
|
||||||
# make sure that _cleanup is called when children die
|
# make sure that _cleanup is called when children die
|
||||||
# by calling active_children on SIGCHLD
|
# 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
|
last_active_time = self.launch_time
|
||||||
try:
|
try:
|
||||||
|
|
Loading…
Reference in New Issue