diff options
author | Benjamin Peterson <benjamin@python.org> | 2008-10-04 22:00:42 (GMT) |
---|---|---|
committer | Benjamin Peterson <benjamin@python.org> | 2008-10-04 22:00:42 (GMT) |
commit | e5384b08861edde56d0b280f5993766d309ab4d0 (patch) | |
tree | eb00d3d112d67d3300bbf23dec974c6994be07ea /Lib | |
parent | 7d8d9a588c497c627b62bd7fa79bc6fef693aa5f (diff) | |
download | cpython-e5384b08861edde56d0b280f5993766d309ab4d0.zip cpython-e5384b08861edde56d0b280f5993766d309ab4d0.tar.gz cpython-e5384b08861edde56d0b280f5993766d309ab4d0.tar.bz2 |
Merged revisions 66670,66681,66688,66696-66699 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r66670 | georg.brandl | 2008-09-28 15:01:36 -0500 (Sun, 28 Sep 2008) | 2 lines
Don't show version in title.
........
r66681 | georg.brandl | 2008-09-29 11:51:35 -0500 (Mon, 29 Sep 2008) | 2 lines
Update nasm location.
........
r66688 | jesse.noller | 2008-09-29 19:15:45 -0500 (Mon, 29 Sep 2008) | 2 lines
issue3770: if SEM_OPEN is 0, disable the mp.synchronize module, rev. Nick Coghlan, Damien Miller
........
r66696 | andrew.kuchling | 2008-09-30 07:31:07 -0500 (Tue, 30 Sep 2008) | 1 line
Edits, and add markup
........
r66697 | andrew.kuchling | 2008-09-30 08:00:34 -0500 (Tue, 30 Sep 2008) | 1 line
Markup fix
........
r66698 | andrew.kuchling | 2008-09-30 08:00:51 -0500 (Tue, 30 Sep 2008) | 1 line
Markup fixes
........
r66699 | andrew.kuchling | 2008-09-30 08:01:46 -0500 (Tue, 30 Sep 2008) | 1 line
Markup fixes. (optparse.rst probably needs an entire revision pass.)
........
Diffstat (limited to 'Lib')
-rw-r--r-- | Lib/multiprocessing/synchronize.py | 11 | ||||
-rwxr-xr-x | Lib/test/regrtest.py | 3 | ||||
-rw-r--r-- | Lib/test/test_multiprocessing.py | 8 |
3 files changed, 22 insertions, 0 deletions
diff --git a/Lib/multiprocessing/synchronize.py b/Lib/multiprocessing/synchronize.py index be56a5b..08d7c5d 100644 --- a/Lib/multiprocessing/synchronize.py +++ b/Lib/multiprocessing/synchronize.py @@ -21,6 +21,17 @@ from multiprocessing.process import current_process from multiprocessing.util import Finalize, register_after_fork, debug from multiprocessing.forking import assert_spawning, Popen +# Try to import the mp.synchronize module cleanly, if it fails +# raise ImportError for platforms lacking a working sem_open implementation. +# See issue 3770 +try: + from _multiprocessing import SemLock +except (ImportError): + raise ImportError("This platform lacks a functioning sem_open" + + " implementation, therefore, the required" + + " synchronization primitives needed will not" + + " function, see issue 3770.") + # # Constants # diff --git a/Lib/test/regrtest.py b/Lib/test/regrtest.py index 4eb4a64..886395b 100755 --- a/Lib/test/regrtest.py +++ b/Lib/test/regrtest.py @@ -1075,6 +1075,7 @@ _expectations = { test_tcl test_timeout test_urllibnet + test_multiprocessing """, 'aix5': """ @@ -1102,6 +1103,7 @@ _expectations = { test_ossaudiodev test_pep277 test_tcl + test_multiprocessing """, 'netbsd3': """ @@ -1115,6 +1117,7 @@ _expectations = { test_ossaudiodev test_pep277 test_tcl + test_multiprocessing """, } _expectations['freebsd5'] = _expectations['freebsd4'] diff --git a/Lib/test/test_multiprocessing.py b/Lib/test/test_multiprocessing.py index dd3ff1b..a8600c0 100644 --- a/Lib/test/test_multiprocessing.py +++ b/Lib/test/test_multiprocessing.py @@ -18,6 +18,14 @@ import socket import random import logging + +# Work around broken sem_open implementations +try: + import multiprocessing.synchronize +except ImportError as e: + from test.test_support import TestSkipped + raise TestSkipped(e) + import multiprocessing.dummy import multiprocessing.connection import multiprocessing.managers |