From e543d35f3541baeb19b7f23fcbd0051d1be48448 Mon Sep 17 00:00:00 2001 From: Robert Nagy Date: Wed, 7 Aug 2019 21:25:45 +0200 Subject: [PATCH] stream: inline and simplify onwritedrain Inline and simplify onwritedrain. Also remove comment that seems to be outdated/invalid. PR-URL: https://github.com/nodejs/node/pull/29037 Reviewed-By: Luigi Pinca Reviewed-By: Matteo Collina Reviewed-By: Trivikram Kamat Reviewed-By: Rich Trott --- lib/_stream_writable.js | 16 ++++------------ 1 file changed, 4 insertions(+), 12 deletions(-) diff --git a/lib/_stream_writable.js b/lib/_stream_writable.js index bf9abeeed81d45..5d52b0d2a4a179 100644 --- a/lib/_stream_writable.js +++ b/lib/_stream_writable.js @@ -478,21 +478,13 @@ function onwrite(stream, er) { } function afterWrite(stream, state, finished, cb) { - if (!finished) - onwriteDrain(stream, state); - state.pendingcb--; - cb(); - finishMaybe(stream, state); -} - -// Must force callback to be called on nextTick, so that we don't -// emit 'drain' before the write() consumer gets the 'false' return -// value, and has a chance to attach a 'drain' listener. -function onwriteDrain(stream, state) { - if (state.length === 0 && state.needDrain) { + if (!finished && state.length === 0 && state.needDrain) { state.needDrain = false; stream.emit('drain'); } + state.pendingcb--; + cb(); + finishMaybe(stream, state); } // If there's something in the buffer waiting, then process it