- multiprocessing: thread joining itself (bnc#747794)

OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:Factory/python?expand=0&rev=132
This commit is contained in:
Jan Matejek 2013-02-08 15:13:03 +00:00 committed by Git OBS Bridge
parent 1b714c33b3
commit 7c3370e837
5 changed files with 44 additions and 1 deletions

View File

@ -0,0 +1,36 @@
# HG changeset patch
# User Richard Oudkerk <shibturn@gmail.com>
# Date 1340030251 -3600
# Node ID 4c07b9c49b75a10874d98841bb2d826f118835a3
# Parent 8b38a81ba3bfa0535b3e7719c3b0e62343a56698
Issue #15101: Make pool finalizer avoid joining current thread
diff --git a/Lib/multiprocessing/pool.py b/Lib/multiprocessing/pool.py
--- a/Lib/multiprocessing/pool.py
+++ b/Lib/multiprocessing/pool.py
@@ -489,7 +489,8 @@ class Pool(object):
# 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(1e100)
# Terminate workers which haven't already finished.
if pool and hasattr(pool[0], 'terminate'):
@@ -499,10 +500,12 @@ class Pool(object):
p.terminate()
debug('joining task handler')
- task_handler.join(1e100)
+ if threading.current_thread() is not task_handler:
+ task_handler.join(1e100)
debug('joining result handler')
- result_handler.join(1e100)
+ if threading.current_thread() is not result_handler:
+ result_handler.join(1e100)
if pool and hasattr(pool[0], 'terminate'):
debug('joining pool workers')

View File

@ -1,6 +1,7 @@
-------------------------------------------------------------------
Wed Feb 6 19:01:46 UTC 2013 - jmatejek@suse.com
Fri Feb 8 14:49:45 UTC 2013 - jmatejek@suse.com
- multiprocessing: thread joining itself (bnc#747794)
- gettext: fix cases where no bundle is found (bnc#794139)
-------------------------------------------------------------------

View File

@ -52,6 +52,7 @@ Patch18: python-2.7.3-ssl_ca_path.patch
Patch19: python-2.7.3-fix-dbm-64bit-bigendian.patch
# PATCH-FEATURE-OPENSUSE python-bundle-lang.patch bnc#617751 dimstar@opensuse.org -- gettext: when looking in default_localedir also check in locale-bundle.
Patch20: python-bundle-lang.patch
Patch21: python-2.7.3-multiprocessing-join.patch
# COMMON-PATCH-END
%define python_version %(echo %{tarversion} | head -c 3)
BuildRequires: automake
@ -142,6 +143,7 @@ other applications.
%patch18
%patch19 -p1
%patch20 -p1
%patch21 -p1
# COMMON-PREP-END
# drop Autoconf version requirement

View File

@ -49,6 +49,7 @@ Patch18: python-2.7.3-ssl_ca_path.patch
Patch19: python-2.7.3-fix-dbm-64bit-bigendian.patch
# PATCH-FEATURE-OPENSUSE python-bundle-lang.patch bnc#617751 dimstar@opensuse.org -- gettext: when looking in default_localedir also check in locale-bundle.
Patch20: python-bundle-lang.patch
Patch21: python-2.7.3-multiprocessing-join.patch
# COMMON-PATCH-END
Provides: pyth_doc
Provides: pyth_ps
@ -98,6 +99,7 @@ Python, and Macintosh Module Reference in PDF format.
%patch18
%patch19 -p1
%patch20 -p1
%patch21 -p1
# COMMON-PREP-END
%build

View File

@ -57,6 +57,7 @@ Patch18: python-2.7.3-ssl_ca_path.patch
Patch19: python-2.7.3-fix-dbm-64bit-bigendian.patch
# PATCH-FEATURE-OPENSUSE python-bundle-lang.patch bnc#617751 dimstar@opensuse.org -- gettext: when looking in default_localedir also check in locale-bundle.
Patch20: python-bundle-lang.patch
Patch21: python-2.7.3-multiprocessing-join.patch
# COMMON-PATCH-END
BuildRequires: automake
BuildRequires: db-devel
@ -181,6 +182,7 @@ implementation of the standard Unix DBM databases.
%patch18
%patch19 -p1
%patch20 -p1
%patch21 -p1
# COMMON-PREP-END
# drop Autoconf version requirement