From: Antoine Pitrou Date: Thu, 31 Jul 2014 22:41:57 +0000 (-0400) Subject: Simplify code in multiprocessing.Connection.send_bytes(). X-Git-Tag: v3.5.0a1~1151 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=0b87831de940a5682300d3857d47c5713be4c8a6;p=python Simplify code in multiprocessing.Connection.send_bytes(). Followup to issue #20540; patch by Serhiy. --- diff --git a/Lib/multiprocessing/connection.py b/Lib/multiprocessing/connection.py index 3bc716f4d4..2bf443531b 100644 --- a/Lib/multiprocessing/connection.py +++ b/Lib/multiprocessing/connection.py @@ -400,17 +400,14 @@ class Connection(_ConnectionBase): if n > 16384: # The payload is large so Nagle's algorithm won't be triggered # and we'd better avoid the cost of concatenation. - chunks = [header, buf] - elif n > 0: + self._send(header) + self._send(buf) + else: # Issue # 20540: concatenate before sending, to avoid delays due # to Nagle's algorithm on a TCP socket. - chunks = [header + buf] - else: - # This code path is necessary to avoid "broken pipe" errors - # when sending a 0-length buffer if the other end closed the pipe. - chunks = [header] - for chunk in chunks: - self._send(chunk) + # Also note we want to avoid sending a 0-length buffer separately, + # to avoid "broken pipe" errors if the other end closed the pipe. + self._send(header + buf) def _recv_bytes(self, maxsize=None): buf = self._recv(4)