diff options
| author | Jan Tuomi <jans.tuomi@gmail.com> | 2017-03-30 20:13:28 +0300 |
|---|---|---|
| committer | Jan Tuomi <jans.tuomi@gmail.com> | 2017-03-30 20:13:28 +0300 |
| commit | ad354278c38e7aace7d3738988ac613a6fece61f (patch) | |
| tree | d5fda903bffbc6472110aad5533b46e7945d6894 | |
| parent | 73ede8b3e02dace38ceb8c34cfc7d1139e67f65c (diff) | |
Add signal handling and thread shutdown fix
| -rwxr-xr-x | client.py | 19 |
1 files changed, 18 insertions, 1 deletions
@@ -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") |
