mirror of
https://github.com/nodejs/node.git
synced 2024-12-01 16:10:02 +01:00
f8c069f5b8
MAX_HWM was added in 9208c89
where the highwatermark was changed to
always increase in steps of highest power of 2 to prevent increasing
hwm excessivly in tiny amounts.
Why a limit was added on the highwatermark is unclear but breaks
existing usage where a larger read size is used. The invariant for
read(n) is that a buffer of size n is always returned. Considering
a maximum ceiling on the buffer size breaks this invariant.
This PR significantly increases the limit to make it less likely to
break the previous invariant and also documents the limit.
Fixes: https://github.com/nodejs/node/issues/29933
PR-URL: https://github.com/nodejs/node/pull/29938
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
28 lines
552 B
JavaScript
28 lines
552 B
JavaScript
'use strict';
|
|
const common = require('../common');
|
|
const { Readable } = require('stream');
|
|
|
|
// Make sure that readable completes
|
|
// even when reading larger buffer.
|
|
const bufferSize = 10 * 1024 * 1024;
|
|
let n = 0;
|
|
const r = new Readable({
|
|
read() {
|
|
// Try to fill readable buffer piece by piece.
|
|
r.push(Buffer.alloc(bufferSize / 10));
|
|
|
|
if (n++ > 10) {
|
|
r.push(null);
|
|
}
|
|
}
|
|
});
|
|
|
|
r.on('readable', () => {
|
|
while (true) {
|
|
const ret = r.read(bufferSize);
|
|
if (ret === null)
|
|
break;
|
|
}
|
|
});
|
|
r.on('end', common.mustCall());
|