diff --git a/lib/internal/fs/streams.js b/lib/internal/fs/streams.js index 882aa8e71fc9..4c53f7ea23e1 100644 --- a/lib/internal/fs/streams.js +++ b/lib/internal/fs/streams.js @@ -158,19 +158,7 @@ function importFd(stream, options) { stream[kHandle] = options.fd; stream[kFs] = FileHandleOperations(stream[kHandle]); stream[kHandle][kRef](); - - const onclose = FunctionPrototypeBind(stream.close, stream); - options.fd.on('close', onclose); - if (options.autoClose === false) { - function cleanup() { - options.fd.removeListener('close', onclose); - options.fd[kUnref](); - } - stream.once('end', cleanup); - stream.once('finish', cleanup); - stream.once('error', cleanup); - } - + options.fd.on('close', FunctionPrototypeBind(stream.close, stream)); return options.fd.fd; } diff --git a/test/parallel/test-fs-promises-file-handle-stream.js b/test/parallel/test-fs-promises-file-handle-stream.js index 61d0b3ca2ec7..71f312b6f9d7 100644 --- a/test/parallel/test-fs-promises-file-handle-stream.js +++ b/test/parallel/test-fs-promises-file-handle-stream.js @@ -42,46 +42,7 @@ async function validateRead() { ); } -async function validateReusedCreateReadStream() { - const filePath = path.resolve(tmpDir, 'tmp-reused-stream.txt'); - fs.writeFileSync(filePath, Buffer.from('ab', 'utf8')); - - const fileHandle = await open(filePath, 'r'); - try { - await buffer(fileHandle.createReadStream({ - start: 0, - end: 0, - autoClose: false, - })); - assert.strictEqual(fileHandle.listenerCount('close'), 0); - - await buffer(fileHandle.createReadStream({ - start: 1, - end: 1, - autoClose: false, - })); - assert.strictEqual(fileHandle.listenerCount('close'), 0); - } finally { - await fileHandle.close(); - } -} - -async function validateReusedCreateWriteStream() { - const filePath = path.resolve(tmpDir, 'tmp-reused-write-stream.txt'); - const fileHandle = await open(filePath, 'w'); - try { - const stream = fileHandle.createWriteStream({ autoClose: false }); - stream.end('a'); - await finished(stream); - assert.strictEqual(fileHandle.listenerCount('close'), 0); - } finally { - await fileHandle.close(); - } -} - Promise.all([ validateWrite(), validateRead(), - validateReusedCreateReadStream(), - validateReusedCreateWriteStream(), ]).then(common.mustCall());