laverdet / node-fibers

Fiber/coroutine support for v8 and node.
MIT License
3.56k stars 224 forks source link

Fibers not destroyed / garbage collected #427

Closed kirgene closed 4 years ago

kirgene commented 4 years ago

Created Fibers are not destroyed.

Having the following code

// test.js

var Fiber = require('fibers');

setInterval(() => {
        global.gc();
        console.log('fibersCreated:', Fiber.fibersCreated);
}, 1000);

function sleep(ms) {
        var fiber = Fiber.current;
        setTimeout(function() {
                fiber.run();
        }, ms);
        Fiber.yield();
}

function start() {
        Fiber(function() {
                sleep(1000);
        }).run();
}

for (let i = 0; i < 10; i++) {
        start();
}

Run as node --expose-gc test.js

Expected output:

fibersCreated: 0

Actual output:

fibersCreated: 10

Environment: Node version: v12.13.0 OS: Ubuntu 19.10

laverdet commented 4 years ago

fibersCreated is a cumulative count of how many fibers have been created, not how many are currently running.