diff options
author | Brett Cannon <brett@python.org> | 2012-06-15 19:04:29 -0400 |
---|---|---|
committer | Brett Cannon <brett@python.org> | 2012-06-15 19:04:29 -0400 |
commit | 24aa693c7ef8f217fbd238eb7af7d828e13a07eb (patch) | |
tree | 7d01ab630c2e8eef1e168b1aa5d84131b60cfd50 /Lib/multiprocessing/util.py | |
parent | 99d776fdf4aa5a66266ebcec2263fab501f03088 (diff) | |
parent | 016ef551a793f72f582d707ce5bb55bf4940cf27 (diff) | |
download | cpython-git-24aa693c7ef8f217fbd238eb7af7d828e13a07eb.tar.gz |
Merge
Diffstat (limited to 'Lib/multiprocessing/util.py')
-rw-r--r-- | Lib/multiprocessing/util.py | 27 |
1 files changed, 15 insertions, 12 deletions
diff --git a/Lib/multiprocessing/util.py b/Lib/multiprocessing/util.py index 48abe383fa..8a6aede162 100644 --- a/Lib/multiprocessing/util.py +++ b/Lib/multiprocessing/util.py @@ -269,21 +269,24 @@ _exiting = False def _exit_function(): global _exiting - info('process shutting down') - debug('running all "atexit" finalizers with priority >= 0') - _run_finalizers(0) + if not _exiting: + _exiting = True - for p in active_children(): - if p._daemonic: - info('calling terminate() for daemon %s', p.name) - p._popen.terminate() + info('process shutting down') + debug('running all "atexit" finalizers with priority >= 0') + _run_finalizers(0) - for p in active_children(): - info('calling join() for process %s', p.name) - p.join() + for p in active_children(): + if p._daemonic: + info('calling terminate() for daemon %s', p.name) + p._popen.terminate() - debug('running the remaining "atexit" finalizers') - _run_finalizers() + for p in active_children(): + info('calling join() for process %s', p.name) + p.join() + + debug('running the remaining "atexit" finalizers') + _run_finalizers() atexit.register(_exit_function) |