diff options
author | Anna Henningsen <anna@addaleax.net> | 2018-11-03 19:00:41 +0100 |
---|---|---|
committer | Daniel Bevenius <daniel.bevenius@gmail.com> | 2018-11-21 09:53:49 +0100 |
commit | 8dd8b8fad9689f31673866f1b77c50098dd2c855 (patch) | |
tree | 082d4b2facd0c1d71cfcaf9ca20e45b171c3d9e4 /lib/net.js | |
parent | 4eb99089d5bf60824127a4fad17fb26242b9e254 (diff) | |
download | android-node-v8-8dd8b8fad9689f31673866f1b77c50098dd2c855.tar.gz android-node-v8-8dd8b8fad9689f31673866f1b77c50098dd2c855.tar.bz2 android-node-v8-8dd8b8fad9689f31673866f1b77c50098dd2c855.zip |
net,http2: merge after-write code
PR-URL: https://github.com/nodejs/node/pull/24380
Refs: https://github.com/nodejs/node/issues/19060
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Daniel Bevenius <daniel.bevenius@gmail.com>
Diffstat (limited to 'lib/net.js')
-rw-r--r-- | lib/net.js | 40 |
1 files changed, 6 insertions, 34 deletions
diff --git a/lib/net.js b/lib/net.js index 08d08888de..01cfed98e8 100644 --- a/lib/net.js +++ b/lib/net.js @@ -62,6 +62,7 @@ const { writevGeneric, writeGeneric, onStreamRead, + kAfterAsyncWrite, kUpdateTimer } = require('internal/stream_base_commons'); const { @@ -685,6 +686,10 @@ protoGetter('localPort', function localPort() { }); +Socket.prototype[kAfterAsyncWrite] = function() { + this[kLastWriteQueueSize] = 0; +}; + Socket.prototype._writeGeneric = function(writev, data, encoding, cb) { // If we are still connecting, then buffer this for later. // The Writable logic will buffer up any more writes while @@ -707,7 +712,7 @@ Socket.prototype._writeGeneric = function(writev, data, encoding, cb) { this._unrefTimer(); - var req = createWriteWrap(this._handle, afterWrite); + var req = createWriteWrap(this._handle); if (writev) writevGeneric(this, req, data, cb); else @@ -771,39 +776,6 @@ protoGetter('bytesWritten', function bytesWritten() { }); -function afterWrite(status, handle, err) { - var self = handle[owner_symbol]; - if (self !== process.stderr && self !== process.stdout) - debug('afterWrite', status); - - if (this.async) - self[kLastWriteQueueSize] = 0; - - // callback may come after call to destroy. - if (self.destroyed) { - debug('afterWrite destroyed'); - if (this.callback) - this.callback(null); - return; - } - - if (status < 0) { - var ex = errnoException(status, 'write', this.error); - debug('write failure', ex); - self.destroy(ex, this.callback); - return; - } - - self._unrefTimer(); - - if (self !== process.stderr && self !== process.stdout) - debug('afterWrite call cb'); - - if (this.callback) - this.callback.call(undefined); -} - - function checkBindError(err, port, handle) { // EADDRINUSE may not be reported until we call listen() or connect(). // To complicate matters, a failed bind() followed by listen() or connect() |