- protected async destroyWorker (worker: Worker): Promise<void> {
- this.sendToWorker(worker, { kill: true, workerId: worker.threadId })
- this.workerNodes[this.getWorkerNodeKey(worker)].closeChannel()
- await worker.terminate()
- }
-
- /** @inheritDoc */
- protected sendToWorker (worker: Worker, message: MessageValue<Data>): void {
- (
- this.getWorkerInfoByWorker(worker).messageChannel as MessageChannel
- ).port1.postMessage(message)
+ protected sendToWorker (
+ workerNodeKey: number,
+ message: MessageValue<Data>,
+ transferList?: readonly TransferListItem[]
+ ): void {
+ this.workerNodes[workerNodeKey]?.messageChannel?.port1.postMessage(
+ {
+ ...message,
+ workerId: this.getWorkerInfo(workerNodeKey)?.id
+ } satisfies MessageValue<Data>,
+ transferList
+ )