summaryrefslogtreecommitdiff
path: root/lib/internal/child_process.js
diff options
context:
space:
mode:
authorAnna Henningsen <anna@addaleax.net>2018-10-23 08:23:02 +0200
committerMichaƫl Zasso <targos@protonmail.com>2018-10-28 15:15:15 +0100
commitf01518edfd83e2235d84485d87621e61f675b4a7 (patch)
tree20a562e8e3d86cce4787fef5847baaced6015a53 /lib/internal/child_process.js
parent0a23538e49e27b95ee35b051b6507eca74e2bb20 (diff)
downloadandroid-node-v8-f01518edfd83e2235d84485d87621e61f675b4a7.tar.gz
android-node-v8-f01518edfd83e2235d84485d87621e61f675b4a7.tar.bz2
android-node-v8-f01518edfd83e2235d84485d87621e61f675b4a7.zip
src: improve StreamBase write throughput
Improve performance by transferring information about write status to JS through an `AliasedBuffer`, rather than object properties set from C++. PR-URL: https://github.com/nodejs/node/pull/23843 Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Anatoli Papirovski <apapirovski@mac.com>
Diffstat (limited to 'lib/internal/child_process.js')
-rw-r--r--lib/internal/child_process.js5
1 files changed, 3 insertions, 2 deletions
diff --git a/lib/internal/child_process.js b/lib/internal/child_process.js
index a2478ec69d..ddb7e58d7c 100644
--- a/lib/internal/child_process.js
+++ b/lib/internal/child_process.js
@@ -26,6 +26,7 @@ const {
WriteWrap,
kReadBytesOrError,
kArrayBufferOffset,
+ kLastWriteWasAsync,
streamBaseState
} = internalBinding('stream_wrap');
const { Pipe, constants: PipeConstants } = internalBinding('pipe_wrap');
@@ -716,10 +717,10 @@ function setupChannel(target, channel) {
}
var req = new WriteWrap();
- req.async = false;
var string = JSON.stringify(message) + '\n';
var err = channel.writeUtf8String(req, string, handle);
+ var wasAsyncWrite = streamBaseState[kLastWriteWasAsync];
if (err === 0) {
if (handle) {
@@ -729,7 +730,7 @@ function setupChannel(target, channel) {
obj.postSend(message, handle, options, callback, target);
}
- if (req.async) {
+ if (wasAsyncWrite) {
req.oncomplete = function() {
control.unref();
if (typeof callback === 'function')