futoin-asyncsteps
Version:
Mimic traditional threads in single threaded event loop
29 lines (23 loc) • 606 B
JavaScript
;
const $as = require('../lib/main');
const Mutex = require( '../Mutex' );
const mtx = new Mutex();
let curr_concurrency = 0;
for ( let i = 0; i < 3; ++i )
{
$as()
.sync(mtx, (as) => {
// regular AsyncSteps in critical section
++curr_concurrency;
as.add((as) => {
as.success(curr_concurrency--);
});
})
.add((as, val) => {
console.log(`Max concurrency ${i}: ${val}`);
})
.execute();
}
// Max concurrency 0: 1
// Max concurrency 1: 1
// Max concurrency 2: 1