by
8
5
3,360
1
Top 1% !
Popular
Famous
Nice
Specified
Popularity: 3137th place
Created
Modified Aug 26, 2014
This snippet is Public
No tags for this snippet yet.
LanguageJavaScript
LicenseMIT_X11
SourceGitHub

simple and effective object / worker / connection pool implimentation in javascript

simple and effective object / worker / connection pool implimentation in javascript: 
thepool.js
Copy Embed Code
<iframe id="embedFrame" style="width:600px; height:300px;"
src="https://www.snip2code.com/Embed/139304/simple-and-effective-object---worker---c?startLine=0"></iframe>
Click on the embed code to copy it into your clipboard Width Height
Leave empty to retrieve all the content Start End
function PoolFactory() { var createPool = function (options) { var wrkrs = [], freeWrkrs = [], opts = options || {}, wCnt = options.maxWorkers || 4, wrkrPth = options.path || 'whateveryouwant.js'; var wp = function () { for (var i = 0; i < wCnt; ++i) { var w = new Worker(pth); workers.push(w); freeWrkrs.push(w); } // get a ready worker function getWrkr() { if (freeWrkrs.length === 0) { throw new error('No workers left!'); } return freeWrkrs.pop(); }; // put back worker function freeUpWrkr(worker) { freeWrkrs.push(worker); }; // kill'em all, then yourself function dispoz() { var i = 0, self = this, cnt = workers.length; function exMe() { workers.forEach(function (w) { w.terminate(); i++; if (i >= cnt) { return kill(); } }); function kill() { return (self = null); }; }; return exMe(); }; this.enlist = get; this.dispose = dispoz; this.release = freeUpWrkr; }; return wp; } this.create = createPool; }
If you want to be updated about similar snippets, Sign in and follow our Channels

blog comments powered by Disqus