Skip to content

forAwaitEach memory leak #24

@NeoPhi

Description

@NeoPhi

The following program when run on node 8 shows unbounded memory growth. It looks to be related to nested promises and closures.

const iterall = require('iterall');

class Chirper {
  [iterall.$$asyncIterator]() {
    let num = 0;
    return {
      next() {
        return Promise.resolve({ value: num++, done: false });
      },
    };
  }
}

iterall.forAwaitEach(new Chirper(), function(value, index, iterable) {
  if (index % 100000 === 0) {
    console.log(value, index);
    console.log(process.memoryUsage());
  }
});

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions