]> granicus.if.org Git - python/commitdiff
Simplify code in multiprocessing.Connection.send_bytes().
authorAntoine Pitrou <solipsis@pitrou.net>
Thu, 31 Jul 2014 22:41:57 +0000 (18:41 -0400)
committerAntoine Pitrou <solipsis@pitrou.net>
Thu, 31 Jul 2014 22:41:57 +0000 (18:41 -0400)
Followup to issue #20540; patch by Serhiy.

Lib/multiprocessing/connection.py

index 3bc716f4d417b7a6d205acfd858bd51658db9026..2bf443531b64d3704eb7c7b7ec075d10e10880f6 100644 (file)
@@ -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)