aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJan Tuomi <jans.tuomi@gmail.com>2017-03-30 20:13:28 +0300
committerJan Tuomi <jans.tuomi@gmail.com>2017-03-30 20:13:28 +0300
commitad354278c38e7aace7d3738988ac613a6fece61f (patch)
treed5fda903bffbc6472110aad5533b46e7945d6894
parent73ede8b3e02dace38ceb8c34cfc7d1139e67f65c (diff)
Add signal handling and thread shutdown fix
-rwxr-xr-xclient.py19
1 files changed, 18 insertions, 1 deletions
diff --git a/client.py b/client.py
index db3a431..682457f 100755
--- a/client.py
+++ b/client.py
@@ -8,6 +8,7 @@ Created on 29.3.2017
import socket
import time
import threading
+import signal
from datetime import datetime
import sys
@@ -22,6 +23,15 @@ def debug(string):
if (DEBUG):
print("{} DEBUG: {}".format(datetime.now(), string))
+def signal_handler(signal, frame):
+ print("Closing sockets and shutting down...")
+ global running
+ running = False
+ disconnect()
+ sys.exit(0)
+
+signal.signal(signal.SIGINT, signal_handler)
+
def connect(host, nick):
msg = "CONNECT\n" + nick + "\n\0"
s.connect((host, 5000))
@@ -39,7 +49,14 @@ def send_message(viesti):
def keep_alive():
debug("laskuri started")
while running:
- time.sleep(10)
+ # kikka kakkonen sille, että ohjelman sulkeutuminen tarkistetaan sekuntin välein
+ # 10 sekuntin sijaan
+ for i in range(10):
+ if not running:
+ break
+
+ time.sleep(1)
+
msg = "KEEPALIVE\n" + nick + "\n\0"
s.send(msg.encode(encoding='utf_8'))
debug("10 sekuntia meni -> KEEPALIVE")