X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=src%2Fpools%2Fabstract-pool.ts;h=2ffd292afab9a0b540826820935b4a0febd34057;hb=2b7fe616bca97733571e69ab361fd718ded0d9dc;hp=f6ed280cc3bbcf39b6a4aed1faa37603bf17786d;hpb=45dbbb14328a173cad05ddcf21b5acf7f6460bb8;p=poolifier.git diff --git a/src/pools/abstract-pool.ts b/src/pools/abstract-pool.ts index f6ed280c..2ffd292a 100644 --- a/src/pools/abstract-pool.ts +++ b/src/pools/abstract-pool.ts @@ -220,8 +220,10 @@ export abstract class AbstractPool< */ 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 } @@ -236,15 +238,13 @@ export abstract class AbstractPool< message: MessageValue ): void - protected abstract registerWorkerMessageListener ( - port: Worker, - listener: (message: MessageValue) => void - ): void + protected abstract registerWorkerMessageListener< + Message extends Data | Response + > (worker: Worker, listener: (message: MessageValue) => void): void - protected abstract unregisterWorkerMessageListener ( - port: Worker, - listener: (message: MessageValue) => void - ): void + protected abstract unregisterWorkerMessageListener< + Message extends Data | Response + > (worker: Worker, listener: (message: MessageValue) => void): void protected internalExecute ( worker: Worker,