Skip to content
Permalink
Browse files

fs: use fs.writev() internally

Avoid using internal API in fs implementation.

PR-URL: #29189
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Trivikram Kamat <trivikr.dev@gmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
  • Loading branch information...
ronag authored and targos committed Aug 17, 2019
1 parent c4f6077 commit d79d142e0c33757b575819ea14cca56874c4d241
Showing with 1 addition and 17 deletions.
  1. +1 −17 lib/internal/fs/streams.js
@@ -2,10 +2,6 @@

const { Math, Object } = primordials;

const {
FSReqCallback,
writeBuffers
} = internalBinding('fs');
const {
ERR_INVALID_ARG_TYPE,
ERR_OUT_OF_RANGE
@@ -325,18 +321,6 @@ WriteStream.prototype._write = function(data, encoding, cb) {
};


function writev(fd, chunks, position, callback) {
function wrapper(err, written) {
// Retain a reference to chunks so that they can't be GC'ed too soon.
callback(err, written || 0, chunks);
}

const req = new FSReqCallback();
req.oncomplete = wrapper;
writeBuffers(fd, chunks, position, req);
}


WriteStream.prototype._writev = function(data, cb) {
if (typeof this.fd !== 'number') {
return this.once('open', function() {
@@ -356,7 +340,7 @@ WriteStream.prototype._writev = function(data, cb) {
size += chunk.length;
}

writev(this.fd, chunks, this.pos, function(er, bytes) {
fs.writev(this.fd, chunks, this.pos, function(er, bytes) {
if (er) {
self.destroy();
return cb(er);

0 comments on commit d79d142

Please sign in to comment.
You can’t perform that action at this time.