]> git.ipfire.org Git - thirdparty/tornado.git/commitdiff
Split large chunks of data in IOStream.write. 516/head
authorAndrew Grigorev <ei-grad@yandex-team.ru>
Thu, 24 May 2012 12:53:51 +0000 (16:53 +0400)
committerAndrew Grigorev <ei-grad@yandex-team.ru>
Fri, 25 May 2012 15:09:59 +0000 (19:09 +0400)
Closes #515.

tornado/iostream.py

index f8fadf6892e035266c533fc67e2fa276237cd1f2..62f31fdc4eb199a24a301c55c25baf4b4c402437 100644 (file)
@@ -192,7 +192,11 @@ class IOStream(object):
         if data:
             # We use bool(_write_buffer) as a proxy for write_buffer_size>0,
             # so never put empty strings in the buffer.
-            self._write_buffer.append(data)
+            if len(data) > 128*1024:
+                for i in range(0, len(data), 128*1024):
+                    self._write_buffer.append(data[i:i+128*1024])
+            else:
+                self._write_buffer.append(data)
         self._write_callback = stack_context.wrap(callback)
         self._handle_write()
         if self._write_buffer: