diff --git a/lib/net.js b/lib/net.js index 62abffdaf53..90c44a04194 100644 --- a/lib/net.js +++ b/lib/net.js @@ -59,6 +59,8 @@ IOWatcher.prototype.ondrain = function () { if (this.socket) { var socket = this.socket; + socket._haveTriedFlush = false; + if (socket.writable || socket.readable) { require('timers').active(socket); } @@ -327,8 +329,9 @@ Stream.prototype.write = function (data /* encoding, fd, callback */) { this._onWritable(); // Insert writeWatcher into the dumpQueue require('timers').active(this); - if (queueSize > (64*1024)) { + if (queueSize > (64*1024) && !this._haveTriedFlush) { IOWatcher.flush(); + this._haveTriedFlush = true; } return queueSize < (64*1024);