[Python-checkins] cpython (merge 3.4 -> default): Merge 3.4.

richard.oudkerk python-checkins at python.org
Sun Mar 23 12:59:23 CET 2014


http://hg.python.org/cpython/rev/3d0eacb12b5c
changeset: 89924:3d0eacb12b5c
parent: 89922:802ed5baffb3
parent: 89923:619331c67638
user: Richard Oudkerk <shibturn at gmail.com>
date: Sun Mar 23 11:57:01 2014 +0000
summary:
 Merge 3.4.
files:
 Lib/multiprocessing/spawn.py | 12 ++++++++++--
 Lib/multiprocessing/synchronize.py | 7 ++++---
 Misc/NEWS | 2 ++
 3 files changed, 16 insertions(+), 5 deletions(-)
diff --git a/Lib/multiprocessing/spawn.py b/Lib/multiprocessing/spawn.py
--- a/Lib/multiprocessing/spawn.py
+++ b/Lib/multiprocessing/spawn.py
@@ -64,7 +64,14 @@
 Run code for process object if this in not the main process
 '''
 if is_forking(sys.argv):
- main()
+ kwds = {}
+ for arg in sys.argv[2:]:
+ name, value = arg.split('=')
+ if value == 'None':
+ kwds[name] = None
+ else:
+ kwds[name] = int(value)
+ spawn_main(**kwds)
 sys.exit()
 
 
@@ -73,7 +80,8 @@
 Returns prefix of command line used for spawning a child process
 '''
 if getattr(sys, 'frozen', False):
- return [sys.executable, '--multiprocessing-fork']
+ tmp = ' '.join('%s=%r' % item for item in kwds.items())
+ return [sys.executable, '--multiprocessing-fork'] + tmp
 else:
 prog = 'from multiprocessing.spawn import spawn_main; spawn_main(%s)'
 prog %= ', '.join('%s=%r' % item for item in kwds.items())
diff --git a/Lib/multiprocessing/synchronize.py b/Lib/multiprocessing/synchronize.py
--- a/Lib/multiprocessing/synchronize.py
+++ b/Lib/multiprocessing/synchronize.py
@@ -49,9 +49,10 @@
 _rand = tempfile._RandomNameSequence()
 
 def __init__(self, kind, value, maxvalue, *, ctx):
- ctx = ctx or get_context()
- ctx = ctx.get_context()
- unlink_now = sys.platform == 'win32' or ctx._name == 'fork'
+ if ctx is None:
+ ctx = context._default_context.get_context()
+ name = ctx.get_start_method()
+ unlink_now = sys.platform == 'win32' or name == 'fork'
 for i in range(100):
 try:
 sl = self._semlock = _multiprocessing.SemLock(
diff --git a/Misc/NEWS b/Misc/NEWS
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -23,6 +23,8 @@
 Library
 -------
 
+- Issue #20990: Fix issues found by pyflakes for multiprocessing.
+
 - Issue #21015: SSL contexts will now automatically select an elliptic
 curve for ECDH key exchange on OpenSSL 1.0.2 and later, and otherwise
 default to "prime256v1".
-- 
Repository URL: http://hg.python.org/cpython


More information about the Python-checkins mailing list

AltStyle によって変換されたページ (->オリジナル) /