From d2f71a8129a1d4d96a52190b25c987f77a909784 Mon Sep 17 00:00:00 2001 From: AuroraWright Date: Sat, 20 Jan 2024 23:14:07 +0100 Subject: [PATCH] A few Windows fixes (sigh) --- owocr/run.py | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/owocr/run.py b/owocr/run.py index eb3ee10..e97e052 100644 --- a/owocr/run.py +++ b/owocr/run.py @@ -58,13 +58,18 @@ class WebsocketServerThread(threading.Thread): return asyncio.run_coroutine_threadsafe(self.send_text_coroutine(text), self.loop) def stop_server(self): + self.loop.call_soon_threadsafe(self.server.ws_server.close) self.loop.call_soon_threadsafe(self.loop.stop) def run(self): asyncio.set_event_loop(self.loop) start_server = websockets.serve(self.server_handler, 'localhost', self.port, max_size=50000000) + self.server = start_server self.loop.run_until_complete(start_server) self.loop.run_forever() + pending = asyncio.all_tasks(loop=self.loop) + if len(pending) > 0: + self.loop.run_until_complete(asyncio.wait(pending)) self.loop.close() @@ -114,8 +119,12 @@ def getchar_thread(): import msvcrt while True: user_input = msvcrt.getch() - if user_input.lower() in 'tq': - break + try: + user_input = user_input.decode() + if user_input.lower() in 'tq': + break + except UnicodeDecodeError: + pass else: import tty, termios fd = sys.stdin.fileno()