repositories
/
poolifier.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
build(deps-dev): apply updates
[poolifier.git]
/
src
/
pools
/
thread
/
dynamic.ts
diff --git
a/src/pools/thread/dynamic.ts
b/src/pools/thread/dynamic.ts
index 1d3f3f5d3c64d0d94a367c17f92a6df1d2b4d75f..8e795512694aa41a2ea82b9c727e3ebd348b01c9 100644
(file)
--- a/
src/pools/thread/dynamic.ts
+++ b/
src/pools/thread/dynamic.ts
@@
-1,5
+1,6
@@
-import { type PoolType, PoolTypes } from '../pool'
-import { FixedThreadPool, type ThreadPoolOptions } from './fixed'
+import { PoolEvents, type PoolType, PoolTypes } from '../pool.js'
+import { checkDynamicPoolSize } from '../utils.js'
+import { FixedThreadPool, type ThreadPoolOptions } from './fixed.js'
/**
* A thread pool with a dynamic number of threads, but a guaranteed minimum number of threads.
/**
* A thread pool with a dynamic number of threads, but a guaranteed minimum number of threads.
@@
-26,22
+27,32
@@
export class DynamicThreadPool<
*/
public constructor (
min: number,
*/
public constructor (
min: number,
-
protected readonly
max: number,
+ max: number,
filePath: string,
opts: ThreadPoolOptions = {}
) {
filePath: string,
opts: ThreadPoolOptions = {}
) {
- super(min, filePath, opts)
- this.checkDynamicPoolSize(this.numberOfWorkers, this.max)
+ super(min, filePath, opts, max)
+ checkDynamicPoolSize(
+ this.minimumNumberOfWorkers,
+ this.maximumNumberOfWorkers
+ )
}
/** @inheritDoc */
}
/** @inheritDoc */
- protected
get type (): PoolType
{
- return
PoolTypes.dynamic
+ protected
shallCreateDynamicWorker (): boolean
{
+ return
(!this.full && this.internalBusy()) || this.empty
}
/** @inheritDoc */
}
/** @inheritDoc */
- protected get maxSize (): number {
- return this.max
+ protected checkAndEmitDynamicWorkerCreationEvents (): void {
+ if (this.full) {
+ this.emitter?.emit(PoolEvents.full, this.info)
+ }
+ }
+
+ /** @inheritDoc */
+ protected get type (): PoolType {
+ return PoolTypes.dynamic
}
/** @inheritDoc */
}
/** @inheritDoc */