repositories
/
poolifier.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
refactor: silence sonar
[poolifier.git]
/
src
/
pools
/
thread
/
dynamic.ts
diff --git
a/src/pools/thread/dynamic.ts
b/src/pools/thread/dynamic.ts
index 1d3f3f5d3c64d0d94a367c17f92a6df1d2b4d75f..d3764c285291407d75b1ee293ece40ebbc8c5dfd 100644
(file)
--- a/
src/pools/thread/dynamic.ts
+++ b/
src/pools/thread/dynamic.ts
@@
-1,4
+1,5
@@
-import { type PoolType, PoolTypes } from '../pool'
+import { PoolEvents, type PoolType, PoolTypes } from '../pool'
+import { checkDynamicPoolSize } from '../utils'
import { FixedThreadPool, type ThreadPoolOptions } from './fixed'
/**
import { FixedThreadPool, type ThreadPoolOptions } from './fixed'
/**
@@
-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 as number
+ )
}
/** @inheritDoc */
}
/** @inheritDoc */
- protected
get type (): PoolType
{
- return
PoolTypes.dynamic
+ protected
shallCreateDynamicWorker (): boolean
{
+ return
!this.full && this.internalBusy()
}
/** @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 */