Skip to main content
Version: 8.10 (unreleased)

Interface: ThreadPool

Accessors

busyCount

Get Signature

get busyCount(): number;

Number of threads currently processing a job.

Returns

number


idleCount

Get Signature

get idleCount(): number;

Number of threads that are ready and idle.

Returns

number


onThreadReady

Set Signature

set onThreadReady(cb): void;

Register a callback invoked whenever a thread becomes ready or idle.

Parameters
cb

(() => void) | undefined

Returns

void


ready

Get Signature

get ready(): Promise<void>;

Resolves when all threads have been spawned and signalled ready.

Returns

Promise<void>


size

Get Signature

get size(): number;

Total number of threads in the pool.

Returns

number

Methods

dispatch()

dispatch(
pw,
jobData,
handlerModule,
callbacks): Promise<void>;

Dispatch a serialized job to a specific idle worker. The caller is responsible for checking idleness first.

Parameters

pw

PoolWorker

jobData

Record<string, unknown>

handlerModule

string

callbacks
onComplete

(completionAction?) => void

onError

(err) => void

Returns

Promise<void>


getIdleWorker()

getIdleWorker(): PoolWorker | undefined;

Find the first ready & idle thread.

Returns

PoolWorker | undefined


terminate()

terminate(): void;

Terminate all threads and reject any in-flight tasks.

Returns

void