New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

web-worker-manager

Package Overview
Dependencies
Maintainers
2
Versions
3
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

web-worker-manager - npm Package Compare versions

Comparing version 0.1.1 to 0.2.0

2

bower.json
{
"name": "worker-manager",
"version": "0.1.1",
"version": "0.2.0",
"description": "Worker manager",

@@ -5,0 +5,0 @@ "keywords": [

@@ -0,1 +1,7 @@

0.2.0 / 2015-11-19
==================
* numWorkers option now defaults to CORES-1
* allow to send transferable objects
0.1.1 / 2015-11-19

@@ -2,0 +8,0 @@ ==================

{
"name": "web-worker-manager",
"version": "0.1.1",
"version": "0.2.0",
"description": "Worker manager",

@@ -5,0 +5,0 @@ "keywords": [

@@ -21,3 +21,10 @@ 'use strict';

// Parse options
this._numWorkers = (options.maxWorkers > 0) ? Math.min(options.maxWorkers, CORES) : CORES;
if (options.maxWorkers === undefined || options.maxWorkers === 'auto') {
this._numWorkers = Math.min(CORES - 1, 1);
} else if (options.maxWorkers > 0) {
this._numWorkers = Math.min(options.maxWorkers, CORES);
} else {
this._numWorkers = CORES;
}
this._workers = new Map();

@@ -95,3 +102,3 @@ this._timeout = options.timeout || 0;

var execInfo = this._waiting[i];
if (typeof execInfo[3] === 'number' && execInfo[3] !== worker.id) {
if (typeof execInfo[4] === 'number' && execInfo[4] !== worker.id) {
// this message is intended to another worker, let's ignore it

@@ -105,6 +112,6 @@ continue;

args: execInfo[1]
});
}, execInfo[2]);
worker.running = true;
worker.time = Date.now();
this._workers.set(worker, execInfo[2]);
this._workers.set(worker, execInfo[3]);
this._working++;

@@ -136,3 +143,3 @@ break;

for (var worker of this._workers.keys()) {
promises.push(this.post(event, args, worker.id));
promises.push(this.post(event, args, [], worker.id));
}

@@ -142,7 +149,11 @@ return Promise.all(promises);

WorkerManager.prototype.post = function (event, args, id) {
WorkerManager.prototype.post = function (event, args, transferable, id) {
if (args === undefined) args = [];
if (transferable === undefined) transferable = [];
if (!Array.isArray(args)) {
args = [args];
}
if (!Array.isArray(transferable)) {
transferable = [transferable];
}

@@ -152,3 +163,3 @@ var self = this;

if (self._terminated) throw new Error('Cannot post (terminated)');
self._waiting.push([event, args, [resolve, reject], id]);
self._waiting.push([event, args, transferable, [resolve, reject], id]);
self._exec();

@@ -155,0 +166,0 @@ });

@@ -15,7 +15,12 @@ 'use strict';

};
ManagedWorker.prototype._send = function (id, data) {
ManagedWorker.prototype._send = function (id, data, transferable) {
if (transferable === undefined) {
transferable = [];
} else if (!Array.isArray(transferable)) {
transferable = [transferable];
}
self.postMessage({
id: id,
data: data
});
}, transferable);
};

@@ -31,4 +36,4 @@ ManagedWorker.prototype._trigger = function (event, args) {

case 'exec':
event.data.args.unshift(function (data) {
worker._send(event.data.id, data);
event.data.args.unshift(function (data, transferable) {
worker._send(event.data.id, data, transferable);
});

@@ -38,4 +43,6 @@ worker._trigger(event.data.event, event.data.args);

case 'ping':
worker.send(event.data.id, 'pong');
worker._send(event.data.id, 'pong');
break;
default:
throw new Error('unexpected action: ' + event.data.action);
}

@@ -42,0 +49,0 @@ };

SocketSocket SOC 2 Logo

Product

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

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc