X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;ds=inline;f=src%2Fpools%2Fworker-node.ts;h=a5482dcd29f6778b69c70bf322c2370be13918b3;hb=7884d1837ee55026fe5204a56f4ebeca17e7e7dd;hp=292b39dfa15352e9cf113919a2dc1485226faa73;hpb=12a8645b5b7fdcb0f1f46403b90ebcc1a8aca505;p=poolifier.git diff --git a/src/pools/worker-node.ts b/src/pools/worker-node.ts index 292b39df..a5482dcd 100644 --- a/src/pools/worker-node.ts +++ b/src/pools/worker-node.ts @@ -22,6 +22,7 @@ export class WorkerNode implements IWorkerNode { public readonly worker: Worker public readonly info: WorkerInfo + public messageChannel?: MessageChannel public usage: WorkerUsage private readonly tasksUsage: Map private readonly tasksQueue: Queue> @@ -35,6 +36,9 @@ implements IWorkerNode { constructor (worker: Worker, workerType: WorkerType) { this.worker = worker this.info = this.initWorkerInfo(worker, workerType) + if (workerType === WorkerTypes.thread) { + this.messageChannel = new MessageChannel() + } this.usage = this.initWorkerUsage() this.tasksUsage = new Map() this.tasksQueue = new Queue>() @@ -77,12 +81,12 @@ implements IWorkerNode { /** @inheritdoc */ public closeChannel (): void { - if (this.info.messageChannel != null) { - this.info.messageChannel?.port1.unref() - this.info.messageChannel?.port2.unref() - this.info.messageChannel?.port1.close() - this.info.messageChannel?.port2.close() - delete this.info.messageChannel + if (this.messageChannel != null) { + this.messageChannel?.port1.unref() + this.messageChannel?.port2.unref() + this.messageChannel?.port1.close() + this.messageChannel?.port2.close() + delete this.messageChannel } } @@ -111,10 +115,7 @@ implements IWorkerNode { id: this.getWorkerId(worker, workerType), type: workerType, dynamic: false, - ready: false, - ...(workerType === WorkerTypes.thread && { - messageChannel: new MessageChannel() - }) + ready: false } }