]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
gh-109653: Speedup import of threading module (#114509)
authorDaniel Hollas <danekhollas@gmail.com>
Wed, 31 Jan 2024 09:29:44 +0000 (09:29 +0000)
committerGitHub <noreply@github.com>
Wed, 31 Jan 2024 09:29:44 +0000 (09:29 +0000)
Avoiding an import of functools leads to 50% speedup of import time.

Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com>
Lib/threading.py
Misc/NEWS.d/next/Library/2024-01-23-23-13-47.gh-issue-109653.KLBHmT.rst [new file with mode: 0644]

index 00b95f8d92a1f06c7660931a24ffdbbe7ead02e3..75a08e5aac97d6098519cb3bb34d19f32ee126f6 100644 (file)
@@ -3,7 +3,6 @@
 import os as _os
 import sys as _sys
 import _thread
-import functools
 import warnings
 
 from time import monotonic as _time
@@ -1630,8 +1629,7 @@ def _register_atexit(func, *arg, **kwargs):
     if _SHUTTING_DOWN:
         raise RuntimeError("can't register atexit after shutdown")
 
-    call = functools.partial(func, *arg, **kwargs)
-    _threading_atexits.append(call)
+    _threading_atexits.append(lambda: func(*arg, **kwargs))
 
 
 from _thread import stack_size
diff --git a/Misc/NEWS.d/next/Library/2024-01-23-23-13-47.gh-issue-109653.KLBHmT.rst b/Misc/NEWS.d/next/Library/2024-01-23-23-13-47.gh-issue-109653.KLBHmT.rst
new file mode 100644 (file)
index 0000000..76074df
--- /dev/null
@@ -0,0 +1 @@
+Reduce the import time of :mod:`threading` module by ~50%. Patch by Daniel Hollas.