diff options
author | Martin v. Löwis <martin@v.loewis.de> | 2007-01-04 21:06:57 (GMT) |
---|---|---|
committer | Martin v. Löwis <martin@v.loewis.de> | 2007-01-04 21:06:57 (GMT) |
commit | bea1c70144e4de97312e9d04dd4c90e549f79f2e (patch) | |
tree | e8f76f2beecf97d1357fec302f72f455dd211edf /Lib/threading.py | |
parent | ca516d21abf7d5c8857868744a58e6de85f4f103 (diff) | |
download | cpython-bea1c70144e4de97312e9d04dd4c90e549f79f2e.zip cpython-bea1c70144e4de97312e9d04dd4c90e549f79f2e.tar.gz cpython-bea1c70144e4de97312e9d04dd4c90e549f79f2e.tar.bz2 |
Bug #1566280: Explicitly invoke threading._shutdown from Py_Main,
to avoid relying on atexit.
Diffstat (limited to 'Lib/threading.py')
-rw-r--r-- | Lib/threading.py | 10 |
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 |