Issue #23400: Raise same exception on both Python 2 and 3 if sem_open is not available.
Patch by Davin Potts.
This commit is contained in:
commit
291d7b0284
|
@ -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 *".
|
||||
|
|
Loading…
Reference in New Issue