]> git.ipfire.org Git - thirdparty/tornado.git/commitdiff
Limit the amount of data sent to socket.send at a time (for windows).
authorBen Darnell <ben@bendarnell.com>
Mon, 11 Oct 2010 18:20:25 +0000 (11:20 -0700)
committerBen Darnell <ben@bendarnell.com>
Mon, 11 Oct 2010 18:20:25 +0000 (11:20 -0700)
Closes #97.

tornado/iostream.py

index c18f8f1d21497b758f2f85096438532999ff6e03..0a4fd8f75c68c7b622cef5cdd61154d21c8fd749 100644 (file)
@@ -278,7 +278,11 @@ class IOStream(object):
     def _handle_write(self):
         while self._write_buffer:
             try:
-                num_bytes = self.socket.send(self._write_buffer)
+                # On windows, socket.send blows up if given a write buffer
+                # that's too large, instead of just returning the number
+                # of bytes it was able to process.
+                temp_write_buffer = self._write_buffer[:128 * 1024]
+                num_bytes = self.socket.send(temp_write_buffer)
                 self._write_buffer = self._write_buffer[num_bytes:]
             except socket.error, e:
                 if e.args[0] in (errno.EWOULDBLOCK, errno.EAGAIN):