From 0a9930a230cf7fe8e2f7d431fc85a7f21517d39b Mon Sep 17 00:00:00 2001 From: Gil Pedersen Date: Thu, 14 Feb 2013 20:26:54 +0100 Subject: [PATCH] stream: Pipe data in chunks matching read data This creates better flow for large values of lowWaterMark. --- lib/_stream_readable.js | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/lib/_stream_readable.js b/lib/_stream_readable.js index 825042b..333a3a0 100644 --- a/lib/_stream_readable.js +++ b/lib/_stream_readable.js @@ -137,8 +137,13 @@ function howMuchToRead(n, state) { if (state.objectMode) return n === 0 ? 0 : 1; - if (isNaN(n) || n === null) - return state.length; + if (isNaN(n) || n === null) { + // only flow one buffer at a time + if (state.flowing && state.buffer.length) + return state.buffer[0].length; + else + return state.length; + } if (n <= 0) return 0; -- 2.7.4