[Python-checkins] cpython (3.2): Issue #15101: Make pool finalizer avoid joining current thread.
richard.oudkerk
python-checkins at python.org
Mon Jun 18 17:08:39 CEST 2012
http://hg.python.org/cpython/rev/e1cd1f430ff1
changeset: 77507:e1cd1f430ff1
branch: 3.2
parent: 77503:38e2a87c9051
user: Richard Oudkerk <shibturn at gmail.com>
date: Mon Jun 18 15:54:57 2012 +0100
summary:
Issue #15101: Make pool finalizer avoid joining current thread.
files:
Lib/multiprocessing/pool.py | 9 ++++++---
Misc/NEWS | 2 ++
2 files changed, 8 insertions(+), 3 deletions(-)
diff --git a/Lib/multiprocessing/pool.py b/Lib/multiprocessing/pool.py
--- a/Lib/multiprocessing/pool.py
+++ b/Lib/multiprocessing/pool.py
@@ -493,7 +493,8 @@
# We must wait for the worker handler to exit before terminating
# workers because we don't want workers to be restarted behind our back.
debug('joining worker handler')
- worker_handler.join()
+ if threading.current_thread() is not worker_handler:
+ worker_handler.join()
# Terminate workers which haven't already finished.
if pool and hasattr(pool[0], 'terminate'):
@@ -503,10 +504,12 @@
p.terminate()
debug('joining task handler')
- task_handler.join()
+ if threading.current_thread() is not task_handler:
+ task_handler.join()
debug('joining result handler')
- result_handler.join()
+ if threading.current_thread() is not result_handler:
+ result_handler.join()
if pool and hasattr(pool[0], 'terminate'):
debug('joining pool workers')
diff --git a/Misc/NEWS b/Misc/NEWS
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -70,6 +70,8 @@
Library
-------
+- Issue #15101: Make pool finalizer avoid joining current thread.
+
- Issue #15036: Mailbox no longer throws an error if a flush is done
between operations when removing or changing multiple items in mbox,
MMDF, or Babyl mailboxes.
--
Repository URL: http://hg.python.org/cpython
More information about the Python-checkins
mailing list