summaryrefslogtreecommitdiff
path: root/node_modules/webworker-threads/benchmark/b03_fibonacci_server_clustered.js
blob: d6609b9d82f9483d50a094eab706e0c21321e545 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
function fib (n) {
  return (n < 2) ? 1 : fib(n-2)+ fib(n-1);
}

var i= 0;
var n= 35;
function ƒ (req, res) {
  if ((++i) % 10) {
    res.end(" QUICK");
    process.stdout.write(" QUICK");
  }
  else {
    var txt= ' '+ fib(n);
    res.end(txt);
    process.stdout.write(txt);
  }
}

var cluster = require('cluster');
if (cluster.isMaster) {
  require('http').globalAgent.maxSockets= 8192+2048;
  var numCPUs = process.argv[3] || 1;
  for (var i = 0; i < numCPUs; i++) {
    cluster.fork();
  }

  cluster.on('death', function(worker) {
    console.log('worker ' + worker.pid + ' died');
  });
} else {
  var port= + process.argv[2] || 1234;
  var http= require('http');
  http.globalAgent.maxSockets= 8192+2048;
  http.createServer(ƒ).listen(port);
  console.log('Fibonacci server (CLUSTERED) listening: ' + port);
}