summaryrefslogtreecommitdiffstats
path: root/Lib/threading.py
diff options
context:
space:
mode:
authorGuido van Rossum <guido@python.org>2001-12-28 22:07:09 (GMT)
committerGuido van Rossum <guido@python.org>2001-12-28 22:07:09 (GMT)
commitf21b2aafa9b78891b568264a32f40ee8a8384aa1 (patch)
tree3a2dbee1ab5585355393743108992fe61e0475e9 /Lib/threading.py
parent2764a3a50ebb467690d77f8925a3414d71756311 (diff)
downloadcpython-f21b2aafa9b78891b568264a32f40ee8a8384aa1.zip
cpython-f21b2aafa9b78891b568264a32f40ee8a8384aa1.tar.gz
cpython-f21b2aafa9b78891b568264a32f40ee8a8384aa1.tar.bz2
Thread.__bootstrap(): ignore exceptions in the self.__delete() call in
the finally clause. An exception here could happen when a daemon thread exits after the threading module has already been trashed by the import finalization, and there's not much of a point in trying to insist doing the cleanup in that stage. This should fix SF bug ##497111: active_limbo_lock error at program exit. 2.1.2 and 2.2.1 Bugfix candidate!
Diffstat (limited to 'Lib/threading.py')
-rw-r--r--Lib/threading.py5
1 files changed, 4 insertions, 1 deletions
diff --git a/Lib/threading.py b/Lib/threading.py
index fbf40cd..6543cc3 100644
--- a/Lib/threading.py
+++ b/Lib/threading.py
@@ -421,7 +421,10 @@ class Thread(_Verbose):
self._note("%s.__bootstrap(): normal return", self)
finally:
self.__stop()
- self.__delete()
+ try:
+ self.__delete()
+ except:
+ pass
def __stop(self):
self.__block.acquire()