From 2081decec54873429fba8ebb7a2c9923807e7b3e Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Fri, 28 Mar 2025 10:26:09 +0530 Subject: [PATCH] Suppress stupid atexit error from multiprocessing --- src/calibre/startup.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/calibre/startup.py b/src/calibre/startup.py index 01f364a2a1..566f03f322 100644 --- a/src/calibre/startup.py +++ b/src/calibre/startup.py @@ -102,6 +102,16 @@ def initialize_calibre(): return get_debug_executable() + ['--fix-multiprocessing', '--', prog] spawn.get_command_line = get_command_line orig_spawn_passfds = util.spawnv_passfds + orig_remove_temp_dir = util._remove_temp_dir + + def safe_rmtree(rmtree): + def r(tdir): + if tdir and os.path.exists(tdir): + rmtree(tdir) + return r + + def safe_remove_temp_dir(rmtree, tdir): + orig_remove_temp_dir(safe_rmtree(rmtree), tdir) def wrapped_orig_spawn_fds(args, passfds): # as of python 3.11 util.spawnv_passfds expects bytes args @@ -117,6 +127,7 @@ def initialize_calibre(): patched_args = get_debug_executable() + ['--fix-multiprocessing', '--'] + args[idx + 1:] return wrapped_orig_spawn_fds(patched_args, passfds) util.spawnv_passfds = spawnv_passfds + util._remove_temp_dir = safe_remove_temp_dir # # Setup resources