summaryrefslogtreecommitdiffstats
path: root/Lib/threading.py
diff options
context:
space:
mode:
authorMartin v. Löwis <martin@v.loewis.de>2007-01-04 21:06:12 (GMT)
committerMartin v. Löwis <martin@v.loewis.de>2007-01-04 21:06:12 (GMT)
commit7b7c9d420817e5ffb5fd3adbc19a9be4ba0f4604 (patch)
tree8eaff650a7faf94527173b9b2029a262c57adee7 /Lib/threading.py
parent769a40a1d046baddbac4c01fa8feada2ee9e5207 (diff)
downloadcpython-7b7c9d420817e5ffb5fd3adbc19a9be4ba0f4604.zip
cpython-7b7c9d420817e5ffb5fd3adbc19a9be4ba0f4604.tar.gz
cpython-7b7c9d420817e5ffb5fd3adbc19a9be4ba0f4604.tar.bz2
Bug #1566280: Explicitly invoke threading._shutdown from Py_Main,
to avoid relying on atexit. Will backport to 2.5.
Diffstat (limited to 'Lib/threading.py')
-rw-r--r--Lib/threading.py10
1 files changed, 5 insertions, 5 deletions
diff --git a/Lib/threading.py b/Lib/threading.py
index 5655dde..fecd3cc 100644
--- a/Lib/threading.py
+++ b/Lib/threading.py
@@ -636,13 +636,11 @@ class _MainThread(Thread):
_active_limbo_lock.acquire()
_active[_get_ident()] = self
_active_limbo_lock.release()
- import atexit
- atexit.register(self.__exitfunc)
def _set_daemon(self):
return False
- def __exitfunc(self):
+ def _exitfunc(self):
self._Thread__stop()
t = _pickSomeNonDaemonThread()
if t:
@@ -715,9 +713,11 @@ def enumerate():
from thread import stack_size
-# Create the main thread object
+# Create the main thread object,
+# and make it available for the interpreter
+# (Py_Main) as threading._shutdown.
-_MainThread()
+_shutdown = _MainThread()._exitfunc
# get thread-local implementation, either from the thread
# module, or from the python fallback