*/
protected chooseWorker (): Worker {
const chosenWorker = this.workers[this.nextWorkerIndex]
- this.nextWorkerIndex++
- this.nextWorkerIndex %= this.workers.length
+ this.nextWorkerIndex =
+ this.workers.length - 1 === this.nextWorkerIndex
+ ? 0
+ : this.nextWorkerIndex + 1
return chosenWorker
}
message: MessageValue<Data>
): void
- protected abstract registerWorkerMessageListener (
- port: Worker,
- listener: (message: MessageValue<Response>) => void
- ): void
+ protected abstract registerWorkerMessageListener<
+ Message extends Data | Response
+ > (worker: Worker, listener: (message: MessageValue<Message>) => void): void
- protected abstract unregisterWorkerMessageListener (
- port: Worker,
- listener: (message: MessageValue<Response>) => void
- ): void
+ protected abstract unregisterWorkerMessageListener<
+ Message extends Data | Response
+ > (worker: Worker, listener: (message: MessageValue<Message>) => void): void
protected internalExecute (
worker: Worker,