MCPcopy Create free account
hub / github.com/Keyang/node-csvtojson / workerMgr

Function workerMgr

v1/core/workerMgr.js:6–67  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

4var eom2 = "\x0f";
5var CSVError = require('./CSVError');
6function workerMgr() {
7 var exports = {
8 initWorker: initWorker,
9 sendWorker: sendWorker,
10 setParams: setParams,
11 drain: function(){},
12 isRunning: isRunning,
13 destroyWorker: destroyWorker
14 };
15 var workers = [];
16 var running = 0;
17 var waiting = null;
18 function initWorker(num, params) {
19 workers = [];
20 running = 0;
21 waiting = null;
22 for (var i = 0; i < num; i++) {
23 workers.push(new Worker(params));
24 }
25
26 }
27 function isRunning() {
28 return running > 0;
29 }
30 function destroyWorker() {
31 workers.forEach(function(w) {
32 w.destroy();
33 });
34 }
35
36 function sendWorker(data, startIdx, transformCb, cbResult) {
37 if (workers.length > 0) {
38 var worker = workers.shift();
39 running++;
40 worker.parse(data, startIdx, function(result) {
41 // var arr=JSON.parse(result);
42 // arr.forEach(function(item){
43 // console.log('idx',item.index)
44 // })
45 workers.push(worker);
46 cbResult(result, startIdx);
47 running--;
48 if (waiting === null && running === 0) {
49 exports.drain();
50 } else if (waiting) {
51 sendWorker.apply(this, waiting);
52 waiting = null;
53 }
54 });
55 process.nextTick(transformCb);
56 } else {
57 waiting = [data, startIdx, transformCb, cbResult];
58 }
59 }
60
61 function setParams(params) {
62 workers.forEach(function(w) {
63 w.setParams(params);

Callers 1

Converter.jsFile · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected