Handle eventual screencapturekit hangs

This commit is contained in:
AuroraWright
2024-12-14 16:00:54 +01:00
parent 4b5d487b7c
commit 993981f6c0

View File

@@ -494,7 +494,7 @@ def signal_handler(sig, frame):
def on_window_closed(alive): def on_window_closed(alive):
global terminated global terminated
if not (alive or terminated): if not (alive or terminated):
logger.info('Window closed, terminated!') logger.info('Window closed or error occurred, terminated!')
terminated = True terminated = True
@@ -999,7 +999,10 @@ def run(read_from=None,
cg_image = CGWindowListCreateImageFromArray(CGRectNull, [window_id], kCGWindowImageBoundsIgnoreFraming) cg_image = CGWindowListCreateImageFromArray(CGRectNull, [window_id], kCGWindowImageBoundsIgnoreFraming)
else: else:
capture_macos_window_screenshot(window_id) capture_macos_window_screenshot(window_id)
cg_image = screencapturekit_queue.get() try:
cg_image = screencapturekit_queue.get(timeout=0.5)
except queue.Empty:
cg_image = None
if not cg_image: if not cg_image:
on_window_closed(False) on_window_closed(False)
break break