import type { TransferListItem, WorkerOptions } from 'node:worker_threads'
import type { EventEmitterAsyncResource } from 'node:events'
import type { ClusterSettings } from 'node:cluster'
-import type { TaskFunction } from '../worker/task-functions'
+import type { TaskFunction } from '../worker/task-functions.js'
import type {
ErrorHandler,
ExitHandler,
MessageHandler,
OnlineHandler,
WorkerType
-} from './worker'
+} from './worker.js'
import type {
WorkerChoiceStrategy,
WorkerChoiceStrategyOptions
-} from './selection-strategies/selection-strategies-types'
+} from './selection-strategies/selection-strategies-types.js'
/**
* Enumeration of pool types.
readonly utilization?: number
/** Pool total worker nodes. */
readonly workerNodes: number
+ /** Pool stealing worker nodes. */
+ readonly stealingWorkerNodes?: number
/** Pool idle worker nodes. */
readonly idleWorkerNodes: number
/** Pool busy worker nodes. */
/**
* Queued tasks finished timeout in milliseconds at worker node termination.
*
- * @defaultValue 1000
+ * @defaultValue 2000
*/
readonly tasksFinishedTimeout?: number
}
* @internal
*/
readonly workerNodes: Array<IWorkerNode<Worker, Data>>
- /**
- * Whether the worker node has back pressure (i.e. its tasks queue is full).
- *
- * @param workerNodeKey - The worker node key.
- * @returns `true` if the worker node has back pressure, `false` otherwise.
- * @internal
- */
- readonly hasWorkerNodeBackPressure: (workerNodeKey: number) => boolean
/**
* Event emitter integrated with async resource on which events can be listened to.
* The async tracking tooling identifier is `poolifier:<PoolType>-<WorkerType>-pool`.