Skip to content

Commit 7f46f18

Browse files
committed
bpo-44155: Add backlog arg for multiprocessing manager server
1 parent bc264ea commit 7f46f18

3 files changed

Lines changed: 9 additions & 6 deletions

File tree

Doc/library/multiprocessing.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2517,7 +2517,7 @@ multiple connections at the same time.
25172517
``'AF_UNIX'`` and address is ``None`` then the socket will be created in a
25182518
private temporary directory created using :func:`tempfile.mkstemp`.
25192519

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

Lib/multiprocessing/connection.py

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -452,7 +452,7 @@ class Listener(object):
452452
This is a wrapper for a bound socket which is 'listening' for
453453
connections, or for a Windows named pipe.
454454
'''
455-
def __init__(self, address=None, family=None, backlog=1, authkey=None):
455+
def __init__(self, address=None, family=None, backlog=None, authkey=None):
456456
family = family or (address and address_type(address)) \
457457
or default_family
458458
address = address or arbitrary_address(family)
@@ -597,7 +597,7 @@ class SocketListener(object):
597597
'''
598598
Representation of a socket which is bound to an address and listening
599599
'''
600-
def __init__(self, address, family, backlog=1):
600+
def __init__(self, address, family, backlog=None):
601601
self._socket = socket.socket(getattr(socket, family))
602602
try:
603603
# SO_REUSEADDR has different semantics on Windows (issue #2550).
@@ -606,7 +606,10 @@ def __init__(self, address, family, backlog=1):
606606
socket.SO_REUSEADDR, 1)
607607
self._socket.setblocking(True)
608608
self._socket.bind(address)
609-
self._socket.listen(backlog)
609+
if backlog is None:
610+
self._socket.listen()
611+
else:
612+
self._socket.listen(backlog)
610613
self._address = self._socket.getsockname()
611614
except OSError:
612615
self._socket.close()

Lib/multiprocessing/managers.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -146,7 +146,7 @@ class Server(object):
146146
public = ['shutdown', 'create', 'accept_connection', 'get_methods',
147147
'debug_info', 'number_of_objects', 'dummy', 'incref', 'decref']
148148

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

158158
# do authentication later
159-
self.listener = Listener(address=address, backlog=128)
159+
self.listener = Listener(address=address, backlog=backlog)
160160
self.address = self.listener.address
161161

162162
self.id_to_obj = {'0': (None, ())}

0 commit comments

Comments
 (0)