summaryrefslogtreecommitdiff
path: root/asciifarmclient
diff options
context:
space:
mode:
authortroido <troido@protonmail.com>2021-01-23 18:20:43 +0100
committertroido <troido@protonmail.com>2021-01-23 18:20:43 +0100
commit2327b2e838789cb2ce0c81a8f5e8922f3fae1800 (patch)
treeca3d34c68f74a49e4a42772b5ec410477f3415c7 /asciifarmclient
parent3420305361c550cd1d57b277184d73d8b80cd76a (diff)
send client thread errors to the parent thread
Diffstat (limited to 'asciifarmclient')
-rw-r--r--asciifarmclient/gameclient.py14
1 files 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