From 9f7b97506430cb4eb88f9baaf7efd610371897e8 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Fri, 5 Nov 2021 23:53:29 +0530 Subject: [PATCH] Handle timeout errors in the shell --- kitty/shell.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/kitty/shell.py b/kitty/shell.py index 99cff4eb5..639837647 100644 --- a/kitty/shell.py +++ b/kitty/shell.py @@ -152,7 +152,14 @@ def run_cmd(global_opts: RCOptions, cmd: str, func: RemoteCommand, opts: Any, it response_timeout = func.response_timeout if hasattr(opts, 'response_timeout'): response_timeout = opts.response_timeout - response = do_io(global_opts.to, send, no_response, response_timeout) + try: + response = do_io(global_opts.to, send, no_response, response_timeout) + except TimeoutError: + send.pop('payload', None) + send['cancel_async'] = True + do_io(global_opts.to, send, True, 10) + print_err(f'Timed out after {response_timeout} seconds waiting for response from kitty') + return if not response.get('ok'): if response.get('tb'): print_err(response['tb'])