From 7f46f18ffd94276e3377f4e46be1ce9d1235ade7 Mon Sep 17 00:00:00 2001 From: junnplus Date: Mon, 24 May 2021 22:13:17 +0800 Subject: [PATCH 1/2] bpo-44155: Add backlog arg for multiprocessing manager server --- Doc/library/multiprocessing.rst | 2 +- Lib/multiprocessing/connection.py | 9 ++++++--- Lib/multiprocessing/managers.py | 4 ++-- 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/Doc/library/multiprocessing.rst b/Doc/library/multiprocessing.rst index f1f9d087edf7f92..461ffb059f86f1d 100644 --- a/Doc/library/multiprocessing.rst +++ b/Doc/library/multiprocessing.rst @@ -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. diff --git a/Lib/multiprocessing/connection.py b/Lib/multiprocessing/connection.py index b7e1e132172d020..b712f31fe1a0db2 100644 --- a/Lib/multiprocessing/connection.py +++ b/Lib/multiprocessing/connection.py @@ -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) @@ -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). @@ -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() diff --git a/Lib/multiprocessing/managers.py b/Lib/multiprocessing/managers.py index 0f5f9f64c2de9e0..ec729c114624636 100644 --- a/Lib/multiprocessing/managers.py +++ b/Lib/multiprocessing/managers.py @@ -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( @@ -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, ())} From 7009a41271877b4a357eaa2843c25c100a26fb7b Mon Sep 17 00:00:00 2001 From: "blurb-it[bot]" <43283697+blurb-it[bot]@users.noreply.github.com> Date: Mon, 22 Jul 2024 02:19:19 +0000 Subject: [PATCH 2/2] =?UTF-8?q?=F0=9F=93=9C=F0=9F=A4=96=20Added=20by=20blu?= =?UTF-8?q?rb=5Fit.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../next/Library/2024-07-22-02-19-16.gh-issue-88321.G42EBO.rst | 1 + 1 file changed, 1 insertion(+) create mode 100644 Misc/NEWS.d/next/Library/2024-07-22-02-19-16.gh-issue-88321.G42EBO.rst diff --git a/Misc/NEWS.d/next/Library/2024-07-22-02-19-16.gh-issue-88321.G42EBO.rst b/Misc/NEWS.d/next/Library/2024-07-22-02-19-16.gh-issue-88321.G42EBO.rst new file mode 100644 index 000000000000000..cc77fd8dffd29a1 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2024-07-22-02-19-16.gh-issue-88321.G42EBO.rst @@ -0,0 +1 @@ +Add backlog arg for multiprocessing manager server