]> git.ipfire.org Git - thirdparty/tornado.git/commitdiff
Extract constant, add comments
authorBen Darnell <ben@bendarnell.com>
Sat, 26 May 2012 18:05:16 +0000 (11:05 -0700)
committerBen Darnell <ben@bendarnell.com>
Sat, 26 May 2012 18:05:16 +0000 (11:05 -0700)
tornado/iostream.py

index 62f31fdc4eb199a24a301c55c25baf4b4c402437..9e95a06672810145df8bed07a9b96e4b366a01b5 100644 (file)
@@ -189,12 +189,16 @@ class IOStream(object):
         """
         assert isinstance(data, bytes_type)
         self._check_closed()
+        # We use bool(_write_buffer) as a proxy for write_buffer_size>0,
+        # so never put empty strings in the buffer.
         if data:
-            # We use bool(_write_buffer) as a proxy for write_buffer_size>0,
-            # so never put empty strings in the buffer.
-            if len(data) > 128*1024:
-                for i in range(0, len(data), 128*1024):
-                    self._write_buffer.append(data[i:i+128*1024])
+            # Break up large contiguous strings before inserting them in the
+            # write buffer, so we don't have to recopy the entire thing
+            # as we slice off pieces to send to the socket.
+            WRITE_BUFFER_CHUNK_SIZE = 128 * 1024
+            if len(data) > WRITE_BUFFER_CHUNK_SIZE:
+                for i in range(0, len(data), WRITE_BUFFER_CHUNK_SIZE):
+                    self._write_buffer.append(data[i:i+WRITE_BUFFER_CHUNK_SIZE])
             else:
                 self._write_buffer.append(data)
         self._write_callback = stack_context.wrap(callback)