Socket
Socket
Sign inDemoInstall

node-threads-pool

Package Overview
Dependencies
0
Maintainers
1
Versions
13
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 1.0.1 to 2.0.0

lib/adam.js

56

index.js

@@ -1,52 +0,8 @@

const {Worker} = require("worker_threads");
const {isMainThread} = require("worker_threads");
module.exports = class {
constructor(max = 1) {
this._max = max;
this._queue = [];
this._workers = new Set();
};
async createWorker(filename, options, resolve, reject) {
const self = this;
const {_queue, _workers} = this;
const worker = new Worker(filename, options);
worker.on("message", message => {
resolve(message);
worker.terminate();
});
worker.on("error", error => {
resolve(error);
worker.terminate();
});
worker.on("exit", code => {
_workers.delete(worker);
if(_queue.length > 0) {
const {filename, options, resolve, reject} = _queue.splice(0, 1)[0];
self.createWorker(filename, options, resolve, reject);
}
if(code !== 0) {
reject(new Error(`thread error. code: ${code}`));
}
});
_workers.add(worker);
}
async run(filename, options) {
const self = this;
const {_workers, _queue, _max} = this;
return new Promise((resolve, reject) => {
if(_workers.size < _max) {
self.createWorker(filename, options, resolve, reject);
} else {
_queue.push({
filename,
options,
resolve,
reject
});
}
});
}
module.exports = {
Eve: require('./lib/eve'),
Adam: require('./lib/adam'),
Thread: require('./lib/thread'),
isMainThread
}
{
"name": "node-threads-pool",
"version": "1.0.1",
"version": "2.0.0",
"description": "worker threads pool",
"main": "index.js",
"scripts": {
"test": "node ./test/app.js"
"eve": "node ./test/eve-example.js",
"adam": "node ./test/adam-example.js"
},

@@ -9,0 +10,0 @@ "repository": {

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc