From ad354278c38e7aace7d3738988ac613a6fece61f Mon Sep 17 00:00:00 2001 From: Jan Tuomi Date: Thu, 30 Mar 2017 20:13:28 +0300 Subject: Add signal handling and thread shutdown fix --- client.py | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) 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") -- cgit v1.3