From: Andrew Grigorev Date: Thu, 24 May 2012 12:53:51 +0000 (+0400) Subject: Split large chunks of data in IOStream.write. X-Git-Tag: v2.3.0~17^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b8e44661464bd2e192322acbe73d08c83f4a1383;p=thirdparty%2Ftornado.git Split large chunks of data in IOStream.write. Closes #515. --- diff --git a/tornado/iostream.py b/tornado/iostream.py index f8fadf689..62f31fdc4 100644 --- a/tornado/iostream.py +++ b/tornado/iostream.py @@ -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: