From 2327b2e838789cb2ce0c81a8f5e8922f3fae1800 Mon Sep 17 00:00:00 2001 From: troido Date: Sat, 23 Jan 2021 18:20:43 +0100 Subject: send client thread errors to the parent thread --- asciifarmclient/gameclient.py | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/asciifarmclient/gameclient.py b/asciifarmclient/gameclient.py index 92be2d4..8a91d75 100644 --- a/asciifarmclient/gameclient.py +++ b/asciifarmclient/gameclient.py @@ -50,7 +50,10 @@ class Client: self.command_loop() def listen(self): - self.connection.listen(self.pushMessage, self.onConnectionError) + try: + self.connection.listen(self.pushMessage, self.onConnectionError) + except BaseException as error: + self.queue.put(("error", error)) def pushMessage(self, message): self.queue.put(("message", message)) @@ -59,9 +62,12 @@ class Client: self.queue.put(("error", error)) def getInput(self): - while True: - key = self.display.screen.get_key() - self.queue.put(("input", key)) + try: + while True: + key = self.display.screen.get_key() + self.queue.put(("input", key)) + except BaseException as error: + self.queue.put(("error", error)) def close(self, msg=None): self.keepalive = False -- cgit