From 2c453bc6217e83d9e7e97dad781c9d6444eeeaa7 Mon Sep 17 00:00:00 2001 From: itdominator <1itdominator@gmail.com> Date: Wed, 10 Dec 2025 20:09:32 -0600 Subject: [PATCH] Fixed IPC issues with passing paths back to instance --- src/app.py | 29 +++++++++++++++++------------ src/libs/ipc_server.py | 6 +++++- 2 files changed, 22 insertions(+), 13 deletions(-) diff --git a/src/app.py b/src/app.py index 14eca5a..94a0bf3 100644 --- a/src/app.py +++ b/src/app.py @@ -23,13 +23,14 @@ class Application: def __init__(self): super(Application, self).__init__() - if not settings_manager.is_trace_debug(): - self.load_ipc() - self.setup_debug_hook() def run(self): + if not settings_manager.is_trace_debug(): + if not self.load_ipc(): + return + win = Window() win.start() @@ -39,13 +40,20 @@ class Application: ipc_server = IPCServer() self.ipc_realization_check(ipc_server) - if not ipc_server.is_ipc_alive: - for arg in unknownargs + [args.new_tab,]: - if os.path.isfile(arg): - message = f"FILE|{arg}" - ipc_server.send_ipc_message(message) + if ipc_server.is_ipc_alive: + return True - raise AppLaunchException(f"{APP_NAME} IPC Server Exists: Have sent path(s) to it and closing...") + logger.warning(f"{app_name} IPC Server Exists: Have sent path(s) to it and closing...") + for arg in unknownargs + [args.new_tab,]: + if os.path.isfile(arg): + message = f"FILE|{arg}" + ipc_server.send_ipc_message(message) + + if os.path.isdir(arg): + message = f"DIR|{arg}" + ipc_server.send_ipc_message(message) + + return False def ipc_realization_check(self, ipc_server): try: @@ -53,9 +61,6 @@ class Application: except Exception: ipc_server.send_test_ipc_message() - with suppress(Exception): - ipc_server.create_ipc_listener() - def setup_debug_hook(self): # Typically: ValueError: signal only works in main thread with suppress(ValueError): diff --git a/src/libs/ipc_server.py b/src/libs/ipc_server.py index eacde83..d8ea5df 100644 --- a/src/libs/ipc_server.py +++ b/src/libs/ipc_server.py @@ -61,8 +61,12 @@ class IPCServer(Singleton): conn = listener.accept() start_time = time.perf_counter() self._handle_ipc_message(conn, start_time) + except EOFError as e: + logger.debug( repr(e) ) except Exception as e: logger.debug( repr(e) ) + finally: + conn.close() listener.close() @@ -88,7 +92,7 @@ class IPCServer(Singleton): break - if msg in ['close connection', 'close server']: + if msg in ['close connection', 'close server', 'Empty Data...']: conn.close() break