chore: v4.0.5
[poolifier.git] / CHANGELOG.md
CommitLineData
522eea03 1# Changelog
2
3All notable changes to this project will be documented in this file.
4
d4abc60a 5The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
522eea03 6and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
45a5a54c 8## [Unreleased]
9aa78bcb 9
7cdb9e56
JB
10## [4.0.5] - 2024-05-09
11
3e645903
JB
12### Fixed
13
14- Avoid queued tasks redistribution on the errored worker node.
15
97c12ef2
JB
16## [4.0.4] - 2024-05-08
17
2eee7220
JB
18### Fixed
19
20- Disable `tasksStealingOnBackPressure` by default until performance issues under heavy load are sorted out.
21
04f996c1
JB
22## [4.0.3] - 2024-05-08
23
0d4e88b3
JB
24### Changed
25
26- Optimize task(s) stealing by dequeuing task(s) from the last prioritized bucket.
27
0de45de9
JB
28## [4.0.2] - 2024-05-06
29
9a55fa8c
JB
30### Fixed
31
32- Ensure poolifier worker task performance measurement requirements are synchronized with task function objects' worker choice strategies.
33
840d1755
JB
34## [4.0.1] - 2024-05-02
35
e0843544
JB
36### Fixed
37
38- Ensure dynamic worker node are initialized with sensible worker node usage default values to avoid worker choice strategies biased decisions.
39- Account for tasks wait time in task execution time computation in worker choice strategies to avoid biased decisions under load with several prioritized task functions and tasks queue enabled.
40
f18b1430
JB
41## [4.0.0] - 2024-04-30
42
f7a08a34
JB
43### Changed
44
3e3e2e5d
JB
45- Support per task function(s) priority and worker choice strategy definition via a task function object: `{ taskFunction: (data?: Data) => Response | Promise<Response>, priority?: number, strategy?: WorkerChoiceStrategy }`.
46- Add priority queue based tasks queueing. One priority queue is divided into prioritized buckets to avoid queued tasks starvation under load.
f7a08a34 47- BREAKING CHANGE: `listTaskFunctionNames()` to `listTaskFunctionsProperties()` in pool and worker API returning registered task functions properties.
3e3e2e5d
JB
48- BREAKING CHANGE: `strategy` field in pool information renamed to `defaultStrategy`.
49
50### Fixed
51
52- Ensure worker choice strategy options changes at runtime are propagated to poolifier workers.
f7a08a34 53
48eab590
JB
54## [3.1.30] - 2024-04-22
55
3e3e2e5d 56### Fixed
22bcc4f1
JB
57
58- Fix `transferList` argument type definition.
59
a2568a26
JB
60## [3.1.29] - 2024-04-02
61
3d720596
JB
62### Fixed
63
64- Fix possible race condition at worker node recreation on worker `error` and `exit` events.
65
d1fc382e
JB
66## [3.1.28] - 2024-04-01
67
60dc0a9c
JB
68### Fixed
69
70- Ensure the minimum number of workers on a started pool is guaranteed.
71
cf4c4b77
JB
72## [3.1.27] - 2024-03-27
73
1fee4f60
JB
74### Fixed
75
76- Fix publishing on JSR, take 4.
77
ac1f550f
JB
78## [3.1.26] - 2024-03-27
79
4ba59505
JB
80### Fixed
81
82- Fix publishing on JSR, take 3.
83
3b58238c
JB
84## [3.1.25] - 2024-03-27
85
41328ae5
JB
86### Fixed
87
88- Fix publishing on JSR, take 2.
89
8fddc9ad
JB
90## [3.1.24] - 2024-03-27
91
fcc6278e
JB
92### Fixed
93
94- Fix publishing on JSR.
95
7586f5a8
JB
96## [3.1.23] - 2024-03-27
97
b7bb8586
JB
98### Changed
99
100- Publish on JSR.
101
01f4a5ce
JB
102## [3.1.22] - 2024-03-15
103
d67bed32
JB
104### Fixed
105
106- Fix pool event emitter registered callbacks removal at `destroy()`.
107
6fd820e6
JB
108## [3.1.21] - 2024-02-22
109
369179f6
JB
110### Fixed
111
112- Fix null exception regression: [#1496](https://github.com/poolifier/poolifier/issues/1496).
113
c96e6364
JB
114## [3.1.20] - 2024-02-11
115
d20cde84
JB
116### Fixed
117
118- Ensure `worker_threads` workers are unreferenced at termination.
119
a7358578
JB
120## [3.1.19] - 2024-01-16
121
16d7e943
JB
122### Fixed
123
124- Fix possible null exception at task finishing handling.
125
57bf289f
JB
126### Changed
127
128- Optimize Deque implementation to improve tasks queueing performance.
129
7cf320c9
JB
130## [3.1.18] - 2024-01-06
131
6d7beb8c
JB
132### Fixed
133
134- Fix dynamic pool with minimum number of workers set to zero: [#1748](https://github.com/poolifier/poolifier/issues/1748).
135
a4bc8d0e
JB
136## [3.1.17] - 2024-01-05
137
2b6b412f
JB
138### Changed
139
140- Improve performance by clean up unneeded condition checks on hot code paths.
141
0d64fd53
JB
142## [3.1.16] - 2024-01-03
143
4302d959
JB
144### Fixed
145
146- Add missing type to TS type definitions.
147
9122cc2c
JB
148## [3.1.15] - 2024-01-02
149
a4d25410
JB
150### Fixed
151
152- Fix CommonJS support with TypeScript: [#1821](https://github.com/poolifier/poolifier/issues/1821).
153
565b7e65
JB
154## [3.1.15-0] - 2024-01-02
155
63406ebd
JB
156### Fixed
157
a4d25410 158- Fix CommonJS support with TypeScript: [#1821](https://github.com/poolifier/poolifier/issues/1821).
63406ebd 159
56412ef4
JB
160## [3.1.14] - 2024-01-01
161
e44639e9
JB
162### Fixed
163
164- Properly handle dynamic pool with zero minimum size.
165
5e133e82
JB
166## [3.1.13] - 2023-12-30
167
b20bf19a
JB
168### Changed
169
170- Reduce branching in several hot code paths.
171- Use faster object cloning implementation.
172
60aa9f2f
JB
173## [3.1.12] - 2023-12-27
174
28883f84
JB
175### Fixed
176
177- Fix tasks redistribution triggers at pool destroying.
178
179### Changed
180
181- Switch TypeScript module resolution to Node16.
182
164c80dd
JB
183## [3.1.12-0] - 2023-12-27
184
f4ef37a8
JB
185### Fixed
186
187- Fix tasks redistribution triggers at pool destroying.
188
0766991a
JB
189## [3.1.11] - 2023-12-24
190
5eb72b9e
JB
191### Fixed
192
193- Avoid worker node cross tasks stealing.
194- Ensure only half the pool worker nodes can steal tasks.
195
4618ccfd
JB
196## [3.1.10] - 2023-12-23
197
09616edb
JB
198### Changed
199
200- Avoid useless branching on pool type.
201
bba20209
JB
202## [3.1.9] - 2023-12-22
203
2889bd70
JB
204### Changed
205
206- Readd ThreadPoolOptions and ClusterPoolOptions TS type aliases to PoolOptions.
207
b1bbc365
JB
208## [3.1.8] - 2023-12-21
209
ad3836ed
JB
210### Fixed
211
212- Fix default worker weight computation.
213- Fix possible null exception at pool destroying.
214
72523ab9
JB
215## [3.1.7] - 2023-12-20
216
55d7d600
JB
217### Fixed
218
219- Ensure worker choice strategies implementation wait for worker node readiness: [#1748](https://github.com/poolifier/poolifier/issues/1748).
220
165f3d56
JB
221## [3.1.6] - 2023-12-18
222
85b2561d
JB
223### Fixed
224
225- Fix pool destroying with tasks queuing enabled.
226
6c8cec9e
JB
227## [3.1.5] - 2023-12-18
228
32b141fd
JB
229### Added
230
231- Add queued tasks end timeout support to worker node termination.
232
f11ec29c
JB
233## [3.1.4] - 2023-12-18
234
4e0afe97
JB
235### Fixed
236
237- Make more robust the fix for possible null exception at handling task execution response.
238
f592ef16
JB
239## [3.1.3] - 2023-12-17
240
9b358e72
JB
241### Fixed
242
243- Fix possible null exception at handling task execution response.
244
c61772e5
JB
245## [3.1.2] - 2023-12-17
246
87347ea8
JB
247### Fixed
248
32b141fd 249- Wait for queued tasks to end at worker node termination.
87347ea8 250
6e664bec
JB
251## [3.1.1] - 2023-12-16
252
51280f9b
JB
253### Fixed
254
255- Fix pool options TS type definition.
256
5362c66b
JB
257## [3.1.0] - 2023-12-16
258
c3719753
JB
259### Changed
260
261- TypeScript breaking change: merge ThreadPoolOptions and ClusterPoolOptions types into PoolOptions type.
262
42321a2b
JB
263## [3.0.14] - 2023-12-13
264
fa548cda
JB
265### Fixed
266
267- Fix possible null exception with worker_threads pools.
268
d727d871
JB
269## [3.0.13] - 2023-12-12
270
fb5a7307
JB
271### Fixed
272
273- Ensure worker choice strategy wait for worker nodes readiness.
274
275### Changed
276
277- Remove infinite retries support in worker choice strategy to avoid configuration leading to possible infinite recursion or loop.
278
90a43710
JB
279## [3.0.12] - 2023-12-12
280
9aa78bcb
JB
281### Changed
282
283- Add infinite retries support in worker choice strategy.
45a5a54c 284
d8163b08
JB
285## [3.0.11] - 2023-12-11
286
f18fd12b
JB
287### Fixed
288
457dd3dc 289- Ensure pool asynchronous resource properly track tasks execution.
f18fd12b 290
bd453998
JB
291## [3.0.10] - 2023-12-08
292
cb71d660
JB
293### Changed
294
457dd3dc 295- Add a fastpath when tasks stealing or redistribution is impossible.
cb71d660 296
d7164344
JB
297## [3.0.9] - 2023-11-26
298
78f60f82
JB
299### Fixed
300
301- Remove all pool events listener at pool destroying.
302- Remove all worker node events listener at worker node destroying.
9f99eb9b 303- Fix worker node event emitter listeners handling memory leak at pool options runtime change.
78f60f82 304
0c08a681
JB
305## [3.0.8] - 2023-11-25
306
463226a4
JB
307### Fixed
308
457dd3dc 309- Ensure continuous tasks stealing on idle start at worker node idling.
463226a4 310
14dad1fd
JB
311## [3.0.7] - 2023-11-24
312
65542a35
JB
313### Changed
314
315- Make continuous tasks stealing start at worker node idling.
316
82c5db63
JB
317## [3.0.6] - 2023-11-24
318
711623b8
JB
319### Fixed
320
b51d8596 321- Ensure pool statuses are checked at initialization, `start()` or `destroy()`.
55082af9 322- Ensure pool `ready` event can be emitted after several `start()/destroy()` cycles.
711623b8 323
5aa31a74
JB
324## [3.0.5] - 2023-10-27
325
d91689fd
JB
326### Fixed
327
55082af9 328- Ensure pool `ready` event can be emitted only once.
d91689fd 329
597775b2
JB
330## [3.0.4] - 2023-10-20
331
03fb313b
JB
332### Changed
333
49d60f11 334- Switch to Bencher for benchmarking: [https://bencher.dev/perf/poolifier](https://bencher.dev/perf/poolifier).
03fb313b
JB
335- Use builtin retry mechanism in worker choice strategies instead of custom one.
336
6c285176
JB
337## [3.0.3] - 2023-10-19
338
9761e404
JB
339### Fixed
340
341- Avoid null exception at sending message to worker.
535fd8d5 342- Avoid null exception at checking worker node readiness.
9761e404 343
358dc40f
JB
344## [3.0.2] - 2023-10-17
345
97256a85
JB
346### Fixed
347
c3c2b35e 348- Fix race condition at dynamic worker node task assignment and scheduled removal. See issue [#1468](https://github.com/poolifier/poolifier/issues/1468) and [#1496](https://github.com/poolifier/poolifier/issues/1496).
97256a85 349
7a570743
JB
350## [3.0.1] - 2023-10-16
351
dbfa7948
JB
352### Fixed
353
fc84edac 354- Workaround possible race condition at work nodes array element removal and querying. See issue [#1468](https://github.com/poolifier/poolifier/issues/1468).
dbfa7948 355
365f13e4
JB
356### Changed
357
c3c2b35e 358- Switch the worker node eventing code to `EventTarget` API.
365f13e4 359
003b3275
JB
360## [3.0.0] - 2023-10-08
361
277c49bf
JB
362### Changed
363
364- Remove Node.js 16.x.x (EOL) support.
365
3c9e911a
JB
366## [2.7.5] - 2023-10-03
367
f80125ca
JB
368### Changed
369
370- Use `EventEmitterAsyncResource` type from `@types/node` for pool event emitter. TypeScript users will need to update to latest `@types/node` version.
371
3466e757
JB
372## [2.7.4] - 2023-09-25
373
67b26ae2
JB
374### Fixed
375
376- Fix source maps (bundler issue).
377
eeb1f961
JB
378## [2.7.3] - 2023-09-24
379
b5604034
JB
380### Changed
381
382- Convert pool event emitter to event emitter async resource.
383
f2df6dc8
JB
384## [2.7.2] - 2023-09-23
385
116ca64b
JB
386### Changed
387
388- Add source maps to npm package to ease debugging.
389
1e319a70
JB
390### Added
391
392- Continuous benchmarking versus other worker pools: [https://poolifier.github.io/benchmark](https://poolifier.github.io/benchmark).
393
aab2819b
JB
394## [2.7.1] - 2023-09-20
395
ae036c3e
JB
396### Fixed
397
398- Ensure worker message listener used one time are removed after usage.
399
15d7c489
JB
400## [2.7.0] - 2023-09-19
401
160557ff
JB
402### Fixed
403
404- Fix task stealing related tasks queue options handling at runtime.
405
c3284191
JB
406### Changed
407
408- Rename `listTaskFunctions()` to `listTaskFunctionNames()` in pool and worker API.
409
410### Added
411
35808931 412- Add `hasTaskFunction()`, `addTaskFunction()`, `removeTaskFunction()`, `setDefaultTaskFunction()` methods to pool API: [PR #1148](https://github.com/poolifier/poolifier/pull/1148).
c20084b6 413- Stricter worker constructor arguments validation.
c3284191 414
04054352
JB
415## [2.6.45] - 2023-09-17
416
093af25b
JB
417### Changed
418
419- Disable publication on GitHub packages registry on release until authentication issue is fixed.
09d9af02
JB
420
421### Added
422
ce0ab2d7 423- Add `startWorkers` to pool options to whether start the minimum number of workers at pool initialization or not.
cde5b54e 424- Add `start()` method to pool API to start the minimum number of workers.
2eee7220 425- Add `taskStealing` and `tasksStealingOnBackPressure` to tasks queue options to whether enable task stealing or not and whether enable tasks stealing under back pressure or not.
1e319a70 426- Continuous internal benchmarking: [https://poolifier.github.io/benchmark-results/dev/bench](https://poolifier.github.io/benchmark-results/dev/bench).
f1c674cd 427
bce9ffdf
JB
428## [2.6.44] - 2023-09-08
429
4cb259d3
JB
430### Fixed
431
432- Use a dedicated PAT to publish on GitHub packages registry.
433
434### Added
435
436- Publish on GitHub packages registry on release.
437
438### Changed
439
440- Switch from rome to biome: [PR #1128](https://github.com/poolifier/poolifier/pull/1128).
441
fbda1e26
JB
442## [2.6.43] - 2023-09-08
443
15fc82ba
JB
444### Added
445
4cb259d3 446- Publish on GitHub packages registry on release.
15fc82ba
JB
447
448### Changed
449
4cb259d3 450- Switch from rome to biome: [PR #1128](https://github.com/poolifier/poolifier/pull/1128).
15fc82ba 451
b47306a3
JB
452## [2.6.42] - 2023-09-06
453
ad11ca81
JB
454### Changed
455
456- Optimize hot code paths implementation: avoid unnecessary branching, add and use optimized helpers (min, max), use reduce() array helper, ...
457
1b37751d
JB
458## [2.6.41] - 2023-09-03
459
f3a91bac
JB
460### Changed
461
462- Optimize worker choice strategies implementation.
463
7790a494
JB
464## [2.6.40] - 2023-09-01
465
6fe200b4
JB
466### Fixed
467
468- Do not pre-choose in WRR worker choice strategy to avoid bias.
68738842 469- Avoid array out of bound in worker choice strategies after worker node removal.
6fe200b4 470
766c7f84
JB
471## [2.6.39] - 2023-08-30
472
edf8ce4e
JB
473### Fixed
474
4cb259d3 475- Fix race condition in worker choice strategies at worker node info querying while not yet initialized.
edf8ce4e 476
904a5689
JB
477## [2.6.38] - 2023-08-30
478
b40c4b06
JB
479### Added
480
481- Bundle typescript types declaration into one file.
482
619f403b
JB
483### Changed
484
485- Improve interleaved weighted round robin worker choice strategy implementation.
486
5a24d71c
JB
487## [2.6.37] - 2023-08-28
488
bdb9d712
JB
489### Fixed
490
491- Ensure unused worker usage statistics are deleted at runtime.
492
8c0b113f
JB
493### Changed
494
495- Rename worker choice strategy options `choiceRetries` to `retries`.
574c5c8d 496- Avoid unnecessary branching in worker choice strategies.
8c0b113f 497
ba821940
JB
498## [2.6.36] - 2023-08-27
499
9d2d0da1
JB
500### Fixed
501
502- Fix pool `execute()` arguments check.
503
1f0766e7
JB
504### Changed
505
506- Make continuous tasks stealing algorithm less aggressive.
8780236f 507- Fine tune tasks stealing algorithm under back pressure.
1f0766e7 508
ffd2c1ff
JB
509## [2.6.35] - 2023-08-25
510
dc021bcc
JB
511### Fixed
512
513- Don't account worker usage statistics for tasks that have failed.
3baa0837 514- Fix pool information runtime and wait time median computation.
dc021bcc
JB
515
516### Changed
517
518- Update simple moving average implementation to use a circular buffer.
519- Update simple moving median implementation to use a circular buffer.
68cbdc84
JB
520- Account for stolen tasks in worker usage statistics and pool information.
521
522### Added
523
524- Continuous tasks stealing algorithm.
dc021bcc 525
c58bc2a1
JB
526## [2.6.34] - 2023-08-24
527
0bc68267
JB
528### Fixes
529
530- Avoid cascading tasks stealing under back pressure.
531
532### Changed
533
534- Add fastpath to queued tasks rescheduling.
535
39fb7ad0
JB
536## [2.6.33] - 2023-08-24
537
dd951876
JB
538### Fixed
539
540- Fix queued tasks rescheduling.
541
ff3f866a
JB
542### Changed
543
544- Rename tasks queue options `queueMaxSize` to `size`.
545
a6b3272b 546### Added
dd951876 547
a6b3272b 548- Task stealing scheduling algorithm if tasks queueing is enabled.
dd951876 549
c55c9b5d
JB
550## [2.6.32] - 2023-08-23
551
15b176e0
JB
552### Fixed
553
554- Ensure no task can be executed when the pool is destroyed.
555
20c6f652
JB
556### Added
557
558- Add `queueMaxSize` option to tasks queue options.
574b351d 559- Add O(1) deque implementation implemented with doubly linked list and use it for tasks queueing.
72695f86 560- Add tasks stealing algorithm when a worker node queue is back pressured if tasks queueing is enabled.
20c6f652 561
e560a9f2
JB
562## [2.6.31] - 2023-08-20
563
b1aae695
JB
564### Fixed
565
3e8611a8 566- Fix worker choice strategy retries mechanism in some edge cases.
b1aae695 567
94407def
JB
568### Changed
569
e695d66f 570- Make orthogonal worker choice strategies tasks distribution and created dynamic worker usage.
a71b05bc 571- Remove the experimental status of the `LEAST_ELU` worker choice strategy.
94407def 572
962b9863
JB
573## [2.6.30] - 2023-08-19
574
33e6bb4c
JB
575### Fixed
576
577- Ensure pool event `backPressure` is emitted.
578- Ensure pool event `full` is emitted only once.
8735b4e5 579- Ensure worker node cannot be instantiated without proper arguments.
33e6bb4c 580
8cc4ea81
JB
581## [2.6.29] - 2023-08-18
582
6169563b
JB
583### Fixed
584
55082af9 585- Fix race condition between readiness and task functions worker message handling at startup.
5dd4043c 586- Fix duplicate task function worker usage statistics computation per task function.
db0e38ee 587- Update task function worker usage statistics if and only if there's at least two different task functions.
5bb5be17 588- Fix race condition at task function worker usage executing task computation leading to negative value.
6169563b 589
8990357d
JB
590### Added
591
445264e8 592- Add back pressure detection on the worker node queue. Event `backPressure` is emitted when all worker node queues are full (worker node queue size >= poolMaxSize^2).
8990357d
JB
593- Use back pressure detection in worker choice strategies.
594- Add worker choice strategies retries mechanism if no worker is eligible.
595
21157987
JB
596## [2.6.28] - 2023-08-16
597
f05ed93c
JB
598### Fixed
599
600- Ensure pool workers are properly initialized.
601
12d67776
JB
602### Added
603
604- HTTP server pool examples: express-cluster, express-hybrid.
605
d18fccb1
JB
606### Changed
607
608- Remove now useless branching in worker hot code path.
609
741cdb34
JB
610## [2.6.27] - 2023-08-15
611
50e7f498
JB
612### Fixed
613
614- Add `KillHandler` type definition to exported types.
615
ef3891a3
JB
616### Added
617
618- Add `destroy` event to pool API.
619
e9dc6efa
JB
620## [2.6.26] - 2023-08-15
621
2b099bf7
JB
622### Added
623
624- Add kill handler to worker options allowing to execute custom code when worker is killed.
ef3891a3 625- Add `listTaskFunctions()` method to pool API.
1f4553c6 626- SMTP client pool example: nodemailer.
2b099bf7 627
5b726f72
JB
628## [2.6.25] - 2023-08-13
629
72855e92
JB
630### Added
631
3b311539 632- HTTP server pool examples: fastify-cluster, fastify-hybrid.
02999424 633- WebSocket server pool examples: ws-cluster, ws-hybrid.
72855e92 634
7aadd6e5
JB
635## [2.6.24] - 2023-08-12
636
7d91a8cd
JB
637### Added
638
639- Add array of transferable objects to the `execute()` method arguments.
02999424 640- WebSocket server pool examples: ws-worker_threads.
7d91a8cd 641
6b4263b4
JB
642## [2.6.23] - 2023-08-11
643
3d76750a 644### Fixed
8e0af894 645
3d76750a 646- Fix pool busyness semantic when tasks queueing is enabled: the pool is busy when the number of executing tasks on each worker has reached the maximum tasks concurrency per worker.
9606b474 647
3d76750a
JB
648### Added
649
650- HTTP client pool examples: fetch, node-fetch and axios with multiple task functions.
02999424 651- HTTP server pool examples: express-worker_threads, fastify-worker_threads.
3d76750a
JB
652
653## [2.6.22] - 2023-08-10
9606b474 654
3d76750a 655### Fixed
9606b474
JB
656
657- Add missing `types` field to package.json `exports`.
658
3d76750a
JB
659### Changed
660
661- Structure markdown documentation (PR #811).
662
d9647bdd
JB
663## [2.6.21] - 2023-08-03
664
2111ec12
JB
665### Changed
666
667- Improve code documentation.
668- Code refactoring and cleanup for better maintainability and readability.
669
5c30b9d9
JB
670## [2.6.20] - 2023-07-21
671
10ecf8fd
JB
672### Fixed
673
674- Fix queued tasks redistribution on error task execution starvation.
a1763c54 675- Ensure tasks queueing per worker condition is untangled from the pool busyness semantic.
10ecf8fd 676
aa9eede8
JB
677### Changed
678
7c89e6a4 679- Drastically reduce lookups by worker in the worker nodes.
aa9eede8 680
62485908
JB
681## [2.6.19] - 2023-07-20
682
2e2ef9c3
JB
683### Added
684
685- Dedicated internal communication channel for worker_threads pools.
686
8f4c9491
JB
687## [2.6.18] - 2023-07-19
688
8660b972
JB
689### Changed
690
691- Code refactoring and cleanup for better maintainability and readability. Bundle size is a bit smaller.
692
206a3519
JB
693## [2.6.17] - 2023-07-16
694
b4899fae
JB
695### Added
696
1a3e01ba 697- Add `listTaskFunctions()` method to worker API.
b4899fae 698
58a06a6c
JB
699## [2.6.16] - 2023-07-12
700
2a69b8c5
JB
701### Fixed
702
80520ca4 703- Fix pool startup detection.
2a69b8c5
JB
704- Fix worker task functions handling.
705
b5900b02
JB
706## [2.6.15] - 2023-07-11
707
19dbc45b
JB
708### Added
709
710- Take into account worker node readiness in worker choice strategies.
711
4a0db581
JB
712## [2.6.14] - 2023-07-10
713
87e44747
JB
714### Fixed
715
716- Fix task function statistics tracking.
717
0265272f
JB
718## [2.6.13] - 2023-07-10
719
968a2e8c
JB
720### Added
721
722- Add per task function statistics tracking.
782299f8 723- Add public methods to manipulate the worker task functions at runtime.
968a2e8c 724
44c8c00f
JB
725## [2.6.12] - 2023-07-09
726
aa4bf4b2
JB
727### Fixed
728
729- Workaround import issue with `node:os` module in node 16.x.x.
730
b7cfced1
JB
731## [2.6.11] - 2023-07-09
732
d5024c00
JB
733### Fixed
734
735- Fix pool readiness semantic.
736
f313a208
JB
737## [2.6.10] - 2023-07-08
738
2431bdb4
JB
739### Fixed
740
741- Ensure workers are not recreated on error at pool startup.
742
743### Added
744
745- Add `ready` and `strategy` fields to pool information.
746- Add pool event `ready` to notify when the number of workers created in the pool has reached the maximum size expected and are ready.
caadbd41 747- Add dynamic pool sizing checks.
2431bdb4 748
369d0a51
JB
749## [2.6.9] - 2023-07-07
750
2845f2a5
JB
751### Fixed
752
753- Recreate the right worker type on uncaught exception.
754
755### Added
756
757- Add minimum and maximum to internal measurement statistics.
1dcf8b7b 758- Add `runTime` and `waitTime` to pool information.
75d3401a 759- Check worker inactive time only on dynamic worker.
2845f2a5 760
fc97d613
JB
761## [2.6.8] - 2023-07-03
762
92b1feaa
JB
763### Fixed
764
765- Brown paper bag release to fix version handling in pool information.
766
52d54060
JB
767## [2.6.7] - 2023-07-03
768
5bc91f3e
JB
769### Fixed
770
771- Ensure worker queued tasks at error are reassigned to other pool workers.
772
afe0d5bf
JB
773### Added
774
775- Add pool `utilization` ratio to pool information.
23ccf9d7 776- Add `version` to pool information.
e5b3047d 777- Add worker information to worker nodes.
afe0d5bf 778
f42c583f
JB
779## [2.6.6] - 2023-07-01
780
6961ca9a
JB
781### Added
782
d5e3c4ff 783- Add safe helper `availableParallelism()` to help sizing the pool.
6961ca9a 784
3749facb
JB
785### Fixed
786
787- Ensure message handler is only registered in worker.
788
6fed2513
JB
789## [2.6.5] - 2023-06-27
790
c72f6987
JB
791### Known issues
792
70726c28 793- Cluster pools tasks execution are not working by using ESM files extension: https://github.com/poolifier/poolifier/issues/782
c72f6987
JB
794
795### Fixed
796
797- Artificial version bump to 2.6.5 to workaround publication issue.
d5e3c4ff 798- Ensure cluster pool `destroy()` gracefully shutdowns worker's server.
c72f6987
JB
799- Ensure pool event is emitted before task error promise rejection.
800- Fix queued tasks count computation.
801
802### Removed
803
2fbe1783 804- Remove unneeded worker_threads worker `MessageChannel` internal usage for IPC.
c72f6987 805
6426631b
JB
806## [2.6.4] - 2023-06-27
807
941f9a7c
JB
808### Known issues
809
70726c28 810- Cluster pools tasks execution are not working by using ESM files extension: https://github.com/poolifier/poolifier/issues/782
941f9a7c 811
2c039e43
JB
812### Fixed
813
d5e3c4ff 814- Ensure cluster pool `destroy()` gracefully shutdowns worker's server.
2c039e43 815- Ensure pool event is emitted before task error promise rejection.
9c16fb4b 816- Fix queued tasks count computation.
2c039e43 817
941f9a7c
JB
818### Removed
819
2fbe1783 820- Remove unneeded worker_threads worker `MessageChannel` internal usage for IPC.
941f9a7c 821
bc1b0765
JB
822## [2.6.3] - 2023-06-19
823
a6a2dc4c
JB
824### Fixed
825
826- Ensure no tasks are queued when trying to soft kill a dynamic worker.
f0d7f803 827- Update strategies internals after statistics computation.
a6a2dc4c 828
7b56f532
JB
829### Changed
830
831- Optimize O(1) queue implementation.
832
b628596c
JB
833## [2.6.2] - 2023-06-12
834
a9e89d00
JB
835### Fixed
836
837- Fix new worker use after creation in dynamic pool given the current worker choice strategy.
838
4368a898
JB
839## [2.6.1] - 2023-06-10
840
931d43e2
JB
841### Added
842
13ab5b87 843- Add worker choice strategy documentation: [README.md](./docs/worker-choice-strategies.md).
931d43e2 844
f1c06930
JB
845### Fixed
846
847- Fix average statistics computation: ensure failed tasks are not accounted.
848
16671b07
JB
849## [2.6.0] - 2023-06-09
850
a1347286
JB
851### Added
852
5af9c0f7 853- Add `LEAST_ELU` worker choice strategy (experimental).
9adcefab 854- Add tasks ELU instead of runtime support to `FAIR_SHARE` worker choice strategy.
a1347286 855
1c6fe997
JB
856### Changed
857
858- Refactor pool worker node usage internals.
477f48e7 859- Breaking change: refactor worker choice strategy statistics requirements: the syntax of the worker choice strategy options has changed.
f63a9dda 860- Breaking change: pool information `info` property object fields have been renamed.
1c6fe997
JB
861
862### Fixed
863
864- Fix wait time accounting.
865- Ensure worker choice strategy `LEAST_BUSY` accounts also tasks wait time.
866- Ensure worker choice strategy `LEAST_USED` accounts also queued tasks.
867
aa07d6ee
JB
868## [2.5.4] - 2023-06-07
869
b6b32453
JB
870### Added
871
872- Add Event Loop Utilization (ELU) statistics to worker tasks usage.
873
874### Changed
875
876- Compute statistics at the worker level only if needed.
2fbe1783 877- Add `worker_threads` options to thread pool options.
b6b32453 878
272d4d8f
JB
879### Fixed
880
881- Make the `LEAST_BUSY` strategy only relies on task runtime.
882
ed47fb3d
JB
883## [2.5.3] - 2023-06-04
884
89a4abfd
JB
885### Changed
886
887- Refine pool information content.
b4213b7f 888- Limit pool internals public exposure.
89a4abfd 889
8a9febf5
JB
890## [2.5.2] - 2023-06-02
891
91ee39ed
JB
892### Added
893
894- Add `taskError` pool event for task execution error.
6b27d407 895- Add pool information `info` property to pool.
91ee39ed
JB
896- Emit pool information on `busy` and `full` pool events.
897
8babb151
JB
898## [2.5.1] - 2023-06-01
899
0e05c4dc
JB
900### Added
901
1f68cede 902- Add pool option `restartWorkerOnError` to restart worker on uncaught error. Default to `true`.
91ee39ed 903- Add `error` pool event for uncaught worker error.
0e05c4dc 904
a8766181
JB
905## [2.5.0] - 2023-05-31
906
e4543b14
JB
907### Added
908
909- Switch pool event emitter to `EventEmitterAsyncResource`.
6da80d38 910- Add tasks wait time accounting in per worker tasks usage.
5af9c0f7 911- Add interleaved weighted round robin `INTERLEAVED_WEIGHTED_ROUND_ROBIN` worker choice strategy (experimental).
e4543b14
JB
912
913### Changed
914
915- Renamed worker choice strategy `LESS_BUSY` to `LEAST_BUSY` and `LESS_USED` to `LEAST_USED`.
916
570efb11
JB
917## [2.4.14] - 2023-05-09
918
b0f28bad
JB
919### Fixed
920
921- Ensure no undefined task runtime can land in the tasks history.
922- Fix median computation implementation once again.
923
110b6d13
JB
924### Added
925
926- Unit tests for median and queue implementations.
927
72584880
JB
928## [2.4.13] - 2023-05-08
929
b0d6ed8f
JB
930### Fixed
931
e3058615 932- Fix worker choice strategy options validation.
b0d6ed8f
JB
933- Fix fair share worker choice strategy internals update: ensure virtual task end timestamp is computed at task submission.
934
06140c32
JB
935## [2.4.12] - 2023-05-06
936
a86b6df1
JB
937### Added
938
939- Support multiple task functions per worker.
08f3f44c 940- Add custom worker weights support to worker choice strategies options.
a86b6df1 941
29ee7e9a
JB
942### Changed
943
944- Use O(1) queue implementation for tasks queueing.
945
0682ba15
JB
946### Fixed
947
948- Fix median computation implementation.
949- Fix fair share worker choice strategy internals update.
950
936d53ec
JB
951## [2.4.11] - 2023-04-23
952
cb70b19d
JB
953### Changed
954
955- Optimize free worker finding in worker choice strategies.
956
15bb637a
JB
957## [2.4.10] - 2023-04-15
958
ef41a6e6
JB
959### Fixed
960
82ea6492 961- Fix typescript type definition for task function: ensure the input data is optional.
ef41a6e6
JB
962- Fix typescript type definition for pool execute(): ensure the input data is optional.
963
181eb2b4
JB
964## [2.4.9] - 2023-04-15
965
a20f0ba5
JB
966### Added
967
968- Add tasks queue enablement runtime setter to pool.
969- Add tasks queue options runtime setter to pool.
970- Add worker choice strategy options runtime setter to pool.
971
972### Changed
973
974- Remove the tasks queuing experimental status.
975
d4aeae5a
JB
976### Fixed
977
82ea6492 978- Fix task function type definition and validation.
2fc5cae3 979- Fix worker choice strategy options handling.
d4aeae5a 980
1d9e7023
JB
981## [2.4.8] - 2023-04-12
982
f9b4bbf8
JB
983### Fixed
984
985- Fix message between main worker and worker type definition for tasks.
986- Fix code documentation.
987
12ae3210
JB
988## [2.4.7] - 2023-04-11
989
7171d33f
JB
990### Added
991
992- Add worker tasks queue options to pool options.
993
e8bd29ce
JB
994### Fixed
995
996- Fix missing documentation.
997
42c7bc10
JB
998## [2.4.6] - 2023-04-10
999
681196cc
JB
1000### Fixed
1001
1002- Ensure one task at a time is executed per worker with tasks queueing enabled.
1c6fe997 1003- Properly count worker executing tasks with tasks queueing enabled.
681196cc 1004
54d360e3
JB
1005## [2.4.5] - 2023-04-09
1006
3fafb1b2
JB
1007### Added
1008
9e775f96
JB
1009- Use monotonic high resolution timer for worker tasks runtime.
1010- Add worker tasks median runtime to statistics.
ff733df7 1011- Add worker tasks queue (experimental).
3fafb1b2 1012
92fa3eb6
JB
1013## [2.4.4] - 2023-04-07
1014
aee46736
JB
1015### Added
1016
1017- Add `PoolEvents` enumeration and `PoolEvent` type.
1018
36b5e78f
JB
1019### Fixed
1020
ff0c2b3e 1021- Destroy worker only on alive check.
36b5e78f 1022
9fb0f324
JB
1023## [2.4.3] - 2023-04-07
1024
28cf3617
JB
1025### Fixed
1026
1027- Fix typedoc generation with inheritance.
1028
848f0f27
JB
1029## [2.4.2] - 2023-04-06
1030
164d950a
JB
1031### Added
1032
1033- Add `full` event to dynamic pool.
32417142 1034- Keep worker choice strategy in memory for conditional reuse.
164d950a 1035
78ab2555
JB
1036### Fixed
1037
1038- Fix possible negative worker key at worker removal in worker choice strategies.
1039
79aafe9f
JB
1040## [2.4.1] - 2023-04-05
1041
9cd39dd4
JB
1042### Changed
1043
1044- Optimize worker choice strategy for dynamic pool.
1045
965415bb
JB
1046### Fixed
1047
1048- Ensure dynamic pool does not alter worker choice strategy expected behavior.
1049
d8b60b1c
JB
1050## [2.4.0] - 2023-04-04
1051
c6bd2650
JB
1052### Added
1053
1054- Add `LESS_BUSY` worker choice strategy.
1055
1056### Changed
1057
1058- Optimize worker storage in pool.
1059- Optimize worker alive status check.
1060- BREAKING CHANGE: Rename worker choice strategy `LESS_RECENTLY_USED` to `LESS_USED`.
1061- Optimize `LESS_USED` worker choice strategy.
2a87030e 1062- Update benchmark versus external threads pools.
c6bd2650
JB
1063- Optimize tasks usage statistics requirements for worker choice strategy.
1064
1065### Fixed
1066
1067- Ensure trimmable characters are checked at pool initialization.
1068- Fix message id integer overflow.
1069- Fix pool worker removal in worker choice strategy internals.
1070- Fix package publication with pnpm.
1071
d0a3f018
JB
1072## [2.4.0-3] - 2023-04-04
1073
b2ede285
JB
1074### Added
1075
1076- Add `LESS_BUSY` worker choice strategy.
1077
1078### Changed
1079
1080- Optimize worker storage in pool.
1081- Optimize worker alive status check.
1082- BREAKING CHANGE: Rename worker choice strategy `LESS_RECENTLY_USED` to `LESS_USED`.
1083- Optimize `LESS_USED` worker choice strategy.
2a87030e 1084- Update benchmark versus external threads pools.
b2ede285
JB
1085
1086### Fixed
1087
1088- Ensure trimmable characters are checked at pool initialization.
1089- Fix message id integer overflow.
1090- Fix pool worker removal in worker choice strategy internals.
1091- Fix package publication with pnpm.
1092
a015ea40
JB
1093## [2.4.0-2] - 2023-04-03
1094
698f4bbc
JB
1095### Added
1096
1097- Add `LESS_BUSY` worker choice strategy.
1098
1099### Changed
1100
1101- Optimize worker storage in pool.
1102- Optimize worker alive status check.
1103- BREAKING CHANGE: Rename worker choice strategy `LESS_RECENTLY_USED` to `LESS_USED`.
1104- Optimize `LESS_USED` worker choice strategy.
1105
1106### Fixed
1107
1108- Ensure trimmable characters are checked at pool initialization.
1109- Fix message id integer overflow.
1110- Fix pool worker removal in worker choice strategy internals.
1111- Fix package publication with pnpm.
1112
8fe15920
JB
1113## [2.4.0-1] - 2023-04-03
1114
5b301c28
JB
1115### Added
1116
1117- Add `LESS_BUSY` worker choice strategy.
1118
1119### Changed
1120
1121- Optimize worker storage in pool.
1122- Optimize worker alive status check.
1123- BREAKING CHANGE: Rename worker choice strategy `LESS_RECENTLY_USED` to `LESS_USED`.
1124- Optimize `LESS_USED` worker choice strategy.
1125
1126### Fixed
1127
1128- Ensure trimmable characters are checked at pool initialization.
1129- Fix message id integer overflow.
1130- Fix pool worker removal in worker choice strategy internals.
1131
2fb9ca9c
JB
1132## [2.4.0-0] - 2023-04-03
1133
168c526f
JB
1134### Added
1135
1136- Add `LESS_BUSY` worker choice strategy.
1137
1d71a908
JB
1138### Changed
1139
ffcbbad8 1140- Optimize worker storage in pool.
1d71a908 1141- Optimize worker alive status check.
65a60b3b 1142- BREAKING CHANGE: Rename worker choice strategy `LESS_RECENTLY_USED` to `LESS_USED`.
737c6d97 1143- Optimize `LESS_USED` worker choice strategy.
1d71a908 1144
ffcbbad8
JB
1145### Fixed
1146
1147- Ensure trimmable characters are checked at pool initialization.
b4e75778 1148- Fix message id integer overflow.
97a2abc3 1149- Fix pool worker removal in worker choice strategy internals.
ffcbbad8 1150
08372738
JB
1151## [2.3.10] - 2023-03-18
1152
710826bc
JB
1153### Fixed
1154
9606b474 1155- Fix package.json `exports` syntax for ESM and CommonJS.
710826bc
JB
1156
1157### Changed
1158
1159- Permit SemVer pre-release publication.
76e5ac6f 1160
e4796ecd
JB
1161## [2.3.10-2] - 2023-03-18
1162
6abad580
JB
1163### Fixed
1164
9606b474 1165- Fix package.json `exports` syntax for ESM and CommonJS.
6abad580 1166
a2ee98cc
JB
1167## [2.3.10-1] - 2023-03-18
1168
7e060cee
JB
1169### Changed
1170
90483887 1171- Permit SemVer pre-release publication.
7e060cee 1172
c81bfafb
JB
1173## [2.3.10-0] - 2023-03-18
1174
fe18768d
JB
1175### Fixed
1176
9606b474 1177- Fix package.json `exports` syntax for ESM and CommonJS.
fe18768d 1178
d7b78217
JB
1179## [2.3.9] - 2023-03-18
1180
ed6dd37f
JB
1181### Changed
1182
1183- Introduce ESM module support along with CommonJS one.
1184
1185### Fixed
1186
1187- Fix brown paper bag bug referencing the same object literal.
1188
68e2ad86
JB
1189## [2.3.8] - 2023-03-18
1190
ca6c7d70
JB
1191### Changed
1192
1193- Switch internal benchmarking code to benny.
fbdedeb9
JB
1194- Switch to TypeScript 5.x.x.
1195- Switch rollup bundler plugins to core ones.
ed6dd37f 1196- Switch to TSDoc syntax.
fbdedeb9 1197- Enforce conventional commits.
ca6c7d70 1198
d15211d4
JB
1199### Fixed
1200
1201- Fix random integer generator.
fbdedeb9 1202- Fix worker choice strategy pool type identification at initialization.
d15211d4 1203
995705ea
JB
1204## [2.3.7] - 2022-10-23
1205
b953022b
JB
1206### Changed
1207
1208- Switch to open collective FOSS project funding platform.
78cea37e
JB
1209- Switch to ts-standard linter configuration on TypeScript code.
1210
1211### Fixed
1212
1213- Fixed missing async on pool execute method.
1214- Fixed typing in TypeScript example.
1215- Fixed types in unit tests.
b953022b 1216
3b9f6953
JB
1217## [2.3.6] - 2022-10-22
1218
f80cead4
JB
1219### Changed
1220
1221- Cleanup pool attributes and methods.
1222- Refine error types thrown.
1223
1224### Fixed
1225
1226- Fix continuous integration build on windows.
1227- Fix code coverage reporting by using c8 instead of nyc.
1228
efc22107
JB
1229## [2.3.5] - 2022-10-21
1230
7a6a0a96
JB
1231### Changed
1232
a05c10de
JB
1233- Improve benchmarks: add IO intensive task workload, add task size option, integrate code into linter.
1234- Optimize tasks usage lookup implementation.
7a6a0a96 1235
b4904890
JB
1236### Fixed
1237
1238- Fix missed pool event emitter type export.
1239- Fix typedoc documentation generation.
1240
a875f8d1
JB
1241## [2.3.4] - 2022-10-17
1242
73cda448
JB
1243### Added
1244
1245- Fully automate release process with release-it.
1246
45a5a54c
JB
1247### Changed
1248
73cda448 1249- Optimize fair share task scheduling algorithm implementation.
2a87030e 1250- Update benchmark versus external pools results with latest version.
45a5a54c 1251
90ee1b18 1252## [2.3.3] - 2022-10-15
1a76932b
JB
1253
1254### Added
1255
1256- Add support for [cluster settings](https://nodejs.org/api/cluster.html#cluster_cluster_settings) in cluster pool options.
1257
90ee1b18 1258## [2.3.2] - 2022-10-14
11df3590
JB
1259
1260### Changed
1261
1262- Optimize fair share worker selection strategy implementation.
1263
1264### Fixed
1265
1266- Fix WRR worker selection strategy: ensure the condition triggering the round robin can be fulfilled.
1267
90ee1b18 1268## [2.3.1] - 2022-10-13
23ff945a
JB
1269
1270### Added
1271
1272- Pool worker choice strategies:
1273 - `WorkerChoiceStrategies.WEIGHTED_ROUND_ROBIN` strategy based on weighted round robin scheduling algorithm using tasks execution time for now.
1274 - `WorkerChoiceStrategies.FAIR_SHARE` strategy based on fair share scheduling algorithm using tasks execution time for now.
1275
90ee1b18 1276## [2.2.2] - 2022-10-09
cb2b6c69
JB
1277
1278### Fixed
1279
1280- Fixed `README.md` file.
1281
90ee1b18 1282## [2.2.1] - 2022-10-08
bdacc2d2 1283
bdaf31cd
JB
1284### Added
1285
1286- Dynamic worker choice strategy change at runtime.
bdacc2d2 1287
90ee1b18 1288## [2.2.0] - 2022-01-05
7e0d447f
JB
1289
1290### Breaking Changes
1291
9606b474 1292- Support only Node.js version 16.x.x for cluster pool: upstream cluster API have changed on that version.
7e0d447f 1293
90ee1b18 1294## [2.1.0] - 2021-08-29
35cf1c03
JB
1295
1296### Added
1297
1298- Add an optional pool option `messageHandler` to `PoolOptions<Worker>` for registering a message handler callback on each worker.
e088a00c
JB
1299
1300### Breaking Changes
1301
1302- `AbstractWorker` class `maxInactiveTime`, `killBehavior` and `async` attributes have been removed in favour of the same ones in the worker options `opts` public attribute.
1303- `AbstractWorker` class `lastTask` attribute have been renamed to `lastTaskTimestamp`.
1304- `AbstractWorker` class `interval` attribute have been renamed to `aliveInterval`.
c365b2d3 1305- `AbstractWorker` class cannot be instantiated without specifying the `mainWorker` argument referencing the main worker.
e088a00c 1306
90ee1b18 1307## [2.0.2] - 2021-05-12
14916bf9
JB
1308
1309### Bug fixes
1310
1311- Fix `busy` event emission on fixed pool type
1312
90ee1b18 1313## [2.0.1] - 2021-03-16
7f685093
JB
1314
1315### Bug fixes
1316
1317- Check if pool options are properly set.
1318- `busy` event is emitted on all pool types.
1319
90ee1b18 1320## [2.0.0] - 2021-03-01
fa0f5b28 1321
f3f833ab 1322### Bug fixes
d63d3be3 1323
ddbeaffd 1324- Now a thread/process by default is not deleted when the task submitted take more time than maxInactiveTime configured (issue #70).
d63d3be3 1325
fa0f5b28
S
1326### Breaking Changes
1327
7f685093 1328- `FullPool` event is now renamed to `busy`.
1927ee67 1329- `maxInactiveTime` on `ThreadWorker` default behavior is now changed, if you want to keep the old behavior set `killBehavior` to `KillBehaviors.HARD`.
1a81f8af 1330 _Find more details on our JSDoc._
ddbeaffd 1331
1927ee67
APA
1332- `maxTasks` option on `FixedThreadPool` and `DynamicThreadPool` is now removed since is no more needed.
1333
ddbeaffd 1334- We changed some internal structures, but you shouldn't be too affected by them as these are internal changes.
fa0f5b28 1335
ec2ccfc8
JB
1336### Pool options types declaration merge
1337
1338`FixedThreadPoolOptions` and `DynamicThreadPoolOptions` type declarations have been merged to `PoolOptions<Worker>`.
1339
fa0f5b28
S
1340#### New `export` strategy
1341
1342```js
1343// Before
0eee77cb 1344const DynamicThreadPool = require('poolifier/lib/dynamic')
fa0f5b28 1345// After
0eee77cb 1346const { DynamicThreadPool } = require('poolifier/lib/dynamic')
fa0f5b28
S
1347```
1348
1349But you should always prefer just using
1350
1351```js
0eee77cb 1352const { DynamicThreadPool } = require('poolifier')
fa0f5b28
S
1353```
1354
d3c8a1a8
S
1355#### New type definitions for input data and response
1356
6677a3d3 1357For cluster worker and worker-thread pools, you can now only send and receive structured-cloneable data.
9606b474 1358_This is not a limitation by poolifier but Node.js._
d3c8a1a8 1359
3a4b605f 1360#### Public property replacements
5c5a1fb7 1361
3a4b605f 1362`numWorkers` property is now `numberOfWorkers`
5c5a1fb7 1363
280c2a77 1364#### Internal (protected) properties and methods renaming
fa0f5b28 1365
280c2a77
S
1366These properties are not intended for end users
1367
1368- `id` => `nextMessageId`
1369
1370These methods are not intended for end users
fa0f5b28
S
1371
1372- `_chooseWorker` => `chooseWorker`
280c2a77 1373- `_newWorker` => `createWorker`
fa0f5b28
S
1374- `_execute` => `internalExecute`
1375- `_chooseWorker` => `chooseWorker`
1376- `_checkAlive` => `checkAlive`
1377- `_run` => `run`
1378- `_runAsync` => `runAsync`
1379
90ee1b18 1380## [1.1.0] - 2020-05-21
0312f71a
APA
1381
1382### Added
1383
1384- ThreadWorker support async functions as option
cf9aa6c3 1385- Various external library patches
0312f71a 1386
90ee1b18 1387## [1.0.0] - 2020-01-24
522eea03 1388
1389### Added
1390
1391- FixedThreadPool implementation
1392- DynamicThreadPool implementation
0312f71a 1393- WorkerThread implementation to improve developer experience