http: use writev on chunked encoding

Now will process all write() that were done on a single tick in a single
writev().
This commit is contained in:
Trevor Norris 2013-12-06 17:17:02 -08:00
parent 82c2084b4e
commit 2eddd74112

View File

@ -438,14 +438,18 @@ OutgoingMessage.prototype.write = function(chunk, encoding, callback) {
else else
len = chunk.length; len = chunk.length;
if (this.connection) if (this.connection && !this.connection.corked) {
this.connection.cork(); this.connection.cork();
var conn = this.connection;
process.nextTick(function connectionCork() {
if (conn)
conn.uncork();
});
}
this._send(len.toString(16), 'binary', null); this._send(len.toString(16), 'binary', null);
this._send(crlf_buf, null, null); this._send(crlf_buf, null, null);
this._send(chunk, encoding, null); this._send(chunk, encoding, null);
ret = this._send(crlf_buf, null, callback); ret = this._send(crlf_buf, null, callback);
if (this.connection)
this.connection.uncork();
} }
} else { } else {
ret = this._send(chunk, encoding, callback); ret = this._send(chunk, encoding, callback);