Skip to content

fs: fix leak of end listener in ReadStream

Rodrigo Muino Tomonari requested to merge github/fork/coderaiser/patch-1 into master

When read is end, it leaves listener of end event. This could be checked this way:

var fs      = require('fs'),
    read    = fs.createReadStream(__filename),
    write   = fs.createWriteStream(__filename + '-copy');

read.pipe(write);

read.once('end', function() {
    var listeners = read.listeners('end');
    console.log('' + listeners[0])
});

The code will log this function:

function () {
    if (this.autoClose) {
      this.destroy();
    }
  }

Version of iojs is:

> iojs -v
v1.8.1

Merge request reports

Loading