Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Doc/library/multiprocessing.rst
Original file line number Diff line number Diff line change
Expand Up @@ -2517,7 +2517,7 @@ multiple connections at the same time.
``'AF_UNIX'`` and address is ``None`` then the socket will be created in a
private temporary directory created using :func:`tempfile.mkstemp`.

If the listener object uses a socket then *backlog* (1 by default) is passed
If the listener object uses a socket then *backlog* (None by default) is passed
to the :meth:`~socket.socket.listen` method of the socket once it has been
bound.

Expand Down
9 changes: 6 additions & 3 deletions Lib/multiprocessing/connection.py
Original file line number Diff line number Diff line change
Expand Up @@ -452,7 +452,7 @@ class Listener(object):
This is a wrapper for a bound socket which is 'listening' for
connections, or for a Windows named pipe.
'''
def __init__(self, address=None, family=None, backlog=1, authkey=None):
def __init__(self, address=None, family=None, backlog=None, authkey=None):
family = family or (address and address_type(address)) \
or default_family
address = address or arbitrary_address(family)
Expand Down Expand Up @@ -597,7 +597,7 @@ class SocketListener(object):
'''
Representation of a socket which is bound to an address and listening
'''
def __init__(self, address, family, backlog=1):
def __init__(self, address, family, backlog=None):
self._socket = socket.socket(getattr(socket, family))
try:
# SO_REUSEADDR has different semantics on Windows (issue #2550).
Expand All @@ -606,7 +606,10 @@ def __init__(self, address, family, backlog=1):
socket.SO_REUSEADDR, 1)
self._socket.setblocking(True)
self._socket.bind(address)
self._socket.listen(backlog)
if backlog is None:
self._socket.listen()
else:
self._socket.listen(backlog)
self._address = self._socket.getsockname()
except OSError:
self._socket.close()
Expand Down
4 changes: 2 additions & 2 deletions Lib/multiprocessing/managers.py
Original file line number Diff line number Diff line change
Expand Up @@ -146,7 +146,7 @@ class Server(object):
public = ['shutdown', 'create', 'accept_connection', 'get_methods',
'debug_info', 'number_of_objects', 'dummy', 'incref', 'decref']

def __init__(self, registry, address, authkey, serializer):
def __init__(self, registry, address, authkey, serializer, backlog=None):
if not isinstance(authkey, bytes):
raise TypeError(
"Authkey {0!r} is type {1!s}, not bytes".format(
Expand All @@ -156,7 +156,7 @@ def __init__(self, registry, address, authkey, serializer):
Listener, Client = listener_client[serializer]

# do authentication later
self.listener = Listener(address=address, backlog=128)
self.listener = Listener(address=address, backlog=backlog)
self.address = self.listener.address

self.id_to_obj = {'0': (None, ())}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Add backlog arg for multiprocessing manager server