From ab7818fd4c78bfcb7a8fc2cdba25b768db6d5460 Mon Sep 17 00:00:00 2001 From: Storm Dragon Date: Tue, 12 May 2026 12:42:57 -0400 Subject: [PATCH] Attempt to prevent thread lock that is causing freeze. --- .../screenDriver/ptyDriver.py | 32 ++++++++++++------- 1 file changed, 20 insertions(+), 12 deletions(-) diff --git a/src/fenrirscreenreader/screenDriver/ptyDriver.py b/src/fenrirscreenreader/screenDriver/ptyDriver.py index 7cf3ecb9..96575c9e 100644 --- a/src/fenrirscreenreader/screenDriver/ptyDriver.py +++ b/src/fenrirscreenreader/screenDriver/ptyDriver.py @@ -9,6 +9,7 @@ import getpass import os import pty import shlex +from queue import Full import signal import struct import sys @@ -316,19 +317,26 @@ class driver(screenDriver): event_time = time.time() for event_state in [1, 0]: - event_queue.put( - { - "Type": FenrirEventType.keyboard_input, - "data": { - "event_name": "KEY_BACKSPACE", - "event_value": 0, - "event_sec": int(event_time), - "event_usec": int((event_time % 1) * 1000000), - "event_state": event_state, - "event_type": 0, + try: + event_queue.put( + { + "Type": FenrirEventType.keyboard_input, + "data": { + "event_name": "KEY_BACKSPACE", + "event_value": 0, + "event_sec": int(event_time), + "event_usec": int((event_time % 1) * 1000000), + "event_state": event_state, + "event_type": 0, + }, }, - } - ) + block=False, + ) + except Full: + self.env["runtime"]["DebugManager"].write_debug_out( + "ptyDriver synthesize_backspace_shortcut: Event queue full, dropping backspace events", + debug.DebugLevel.WARNING, + ) return True def get_session_information(self):