From 0729694246174a5c2f0ae197f2e0dbea61b90c9f Mon Sep 17 00:00:00 2001 From: Victor Stinner Date: Wed, 16 Jun 2021 11:41:17 +0200 Subject: [PATCH] bpo-44422: threading.Thread reuses the _delete() method (GH-26741) The _bootstrap_inner() method of threading.Thread now reuses its _delete() method rather than accessing _active() directly. It became possible since _active_limbo_lock became reentrant. Moreover, it no longer ignores any exception when deleting the thread from the _active dictionary. --- Lib/threading.py | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/Lib/threading.py b/Lib/threading.py index 766011fa031..c2b94a50455 100644 --- a/Lib/threading.py +++ b/Lib/threading.py @@ -1010,13 +1010,7 @@ class Thread: except: self._invoke_excepthook(self) finally: - with _active_limbo_lock: - try: - # We don't call self._delete() because it also - # grabs _active_limbo_lock. - del _active[get_ident()] - except: - pass + self._delete() def _stop(self): # After calling ._stop(), .is_alive() returns False and .join() returns