- protected async destroyWorker (worker: Worker): Promise<void> {
- this.sendToWorker(worker, { kill: true, workerId: worker.threadId })
- const workerInfo = this.getWorkerInfoByWorker(worker)
- workerInfo.messageChannel?.port1.close()
- workerInfo.messageChannel?.port2.close()
- 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?: TransferListItem[]
+ ): void {
+ this.workerNodes[workerNodeKey]?.messageChannel?.port1.postMessage(
+ {
+ ...message,
+ workerId: this.getWorkerInfo(workerNodeKey)?.id
+ } satisfies MessageValue<Data>,
+ transferList
+ )