ÿØÿà JFIF ` ` ÿþ
|
Server : Apache System : Linux cloud.heroica.com.br 4.18.0-553.36.1.el8_10.x86_64 #1 SMP Wed Jan 22 03:07:54 EST 2025 x86_64 User : farolpborg ( 1053) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /var/www/node_services/apimetaexamepopular/node_modules/memfs/lib/thingies/ |
Upload File : |
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.concurrency = void 0;
const go_1 = require("./go");
class Task {
constructor(code) {
this.code = code;
this.promise = new Promise((resolve, reject) => {
this.resolve = resolve;
this.reject = reject;
});
}
}
/** Limits concurrency of async code. */
const concurrency = (limit) => {
let workers = 0;
const queue = new Set();
const work = async () => {
const task = queue.values().next().value;
if (task)
queue.delete(task);
else
return;
workers++;
try {
task.resolve(await task.code());
}
catch (error) {
task.reject(error);
}
finally {
workers--, queue.size && (0, go_1.go)(work);
}
};
return async (code) => {
const task = new Task(code);
queue.add(task);
return workers < limit && (0, go_1.go)(work), task.promise;
};
};
exports.concurrency = concurrency;
//# sourceMappingURL=concurrency.js.map