Skip to content

Commit dc89963

Browse files
Initialize the client's SIGINT signal handler if a client is created (Fixes miguelgrinberg#424)
1 parent 2a54f6c commit dc89963

File tree

1 file changed

+7
-1
lines changed

1 file changed

+7
-1
lines changed

socketio/client.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
import logging
33
import random
44
import signal
5+
import threading
56

67
import engineio
78
import six
@@ -25,7 +26,7 @@ def signal_handler(sig, frame): # pragma: no cover
2526
return original_signal_handler(sig, frame)
2627

2728

28-
original_signal_handler = signal.signal(signal.SIGINT, signal_handler)
29+
original_signal_handler = None
2930

3031

3132
class Client(object):
@@ -82,6 +83,11 @@ def __init__(self, reconnection=True, reconnection_attempts=0,
8283
reconnection_delay=1, reconnection_delay_max=5,
8384
randomization_factor=0.5, logger=False, binary=False,
8485
json=None, **kwargs):
86+
global original_signal_handler
87+
if original_signal_handler is None and \
88+
threading.current_thread() == threading.main_thread():
89+
original_signal_handler = signal.signal(signal.SIGINT,
90+
signal_handler)
8591
self.reconnection = reconnection
8692
self.reconnection_attempts = reconnection_attempts
8793
self.reconnection_delay = reconnection_delay

0 commit comments

Comments
 (0)