Refine release-it configuration
[poolifier.git] / benchmarks / versus-external-pools / fixed-worker-threads-pool.js
1 // IMPORT LIBRARIES
2 const Pool = require('worker-threads-pool')
3 // FINISH IMPORT LIBRARIES
4 const size = Number(process.env.POOL_SIZE)
5 const iterations = Number(process.env.NUM_ITERATIONS)
6 const data = {
7 test: 'MYBENCH',
8 taskType: process.env['TASK_TYPE']
9 }
10
11 const pool = new Pool({ max: size })
12
13 async function poolAcquireAsync () {
14 return new Promise((resolve, reject) => {
15 pool.acquire(
16 './workers/worker-threads-pool/function-to-bench-worker.js',
17 {
18 workerData: data
19 },
20 err => {
21 if (err) reject(err)
22 resolve()
23 }
24 )
25 })
26 }
27
28 async function run () {
29 const promises = []
30 for (let i = 0; i < iterations; i++) {
31 promises.push(poolAcquireAsync())
32 }
33 await Promise.all(promises)
34 process.exit()
35 }
36
37 run()