Commit 291d7b02 authored by Berker Peksag's avatar Berker Peksag

Issue #23400: Raise same exception on both Python 2 and 3 if sem_open is not available.

Patch by Davin Potts.
parents b8e973f9 7ecfc82e
......@@ -262,14 +262,6 @@ that only one process prints to standard output at a time::
Without using the lock output from the different processes is liable to get all
mixed up.
.. note::
Some of this package's functionality requires a functioning shared semaphore
implementation on the host operating system. Without one, the
:mod:`multiprocessing.synchronize` module will be disabled, and attempts to
import it will result in an :exc:`ImportError`. See
:issue:`3770` for additional information.
Sharing state between processes
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
......@@ -808,6 +800,14 @@ For an example of the usage of queues for interprocess communication see
immediately without waiting to flush enqueued data to the
underlying pipe, and you don't care about lost data.
.. note::
This class's functionality requires a functioning shared semaphore
implementation on the host operating system. Without one, the
functionality in this class will be disabled, and attempts to
instantiate a :class:`Queue` will result in an :exc:`ImportError`. See
:issue:`3770` for additional information. The same holds true for any
of the specialized queue types listed below.
.. class:: SimpleQueue()
......@@ -1183,6 +1183,14 @@ object -- see :ref:`multiprocessing-managers`.
This differs from the behaviour of :mod:`threading` where SIGINT will be
ignored while the equivalent blocking calls are in progress.
.. note::
Some of this package's functionality requires a functioning shared semaphore
implementation on the host operating system. Without one, the
:mod:`multiprocessing.synchronize` module will be disabled, and attempts to
import it will result in an :exc:`ImportError`. See
:issue:`3770` for additional information.
Shared :mod:`ctypes` Objects
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
......
......@@ -35,7 +35,8 @@ class Queue(object):
def __init__(self, maxsize=0, *, ctx):
if maxsize <= 0:
maxsize = _multiprocessing.SemLock.SEM_VALUE_MAX
# Can raise ImportError (see issues #3770 and #23400)
from .synchronize import SEM_VALUE_MAX as maxsize
self._maxsize = maxsize
self._reader, self._writer = connection.Pipe(duplex=False)
self._rlock = ctx.Lock()
......
......@@ -19,6 +19,9 @@ Core and Builtins
Library
-------
- Issue #23400: Raise same exception on both Python 2 and 3 if sem_open is not
available. Patch by Davin Potts.
- Issue #10838: The subprocess now module includes SubprocessError and
TimeoutError in its list of exported names for the users wild enough
to use "from subprocess import *".
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment