From 5f37b74baf718f09227496841af748da54483fd9 Mon Sep 17 00:00:00 2001 From: Derrick Hammer Date: Tue, 26 Jul 2022 23:20:34 -0400 Subject: [PATCH] *Try to update the available list every loop and only compare max _activeRelays against the min of _maxConnections and available --- src/index.ts | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/index.ts b/src/index.ts index 56084ac..255fcf4 100644 --- a/src/index.ts +++ b/src/index.ts @@ -123,16 +123,22 @@ export default class DHT { } private async fillConnections(): Promise { - let available = [...this._relays.keys()].filter( - (x) => ![...this._activeRelays.keys()].includes(x) - ); + let available: string[] = []; + + const updateAvailable = () => { + available = [...this._relays.keys()].filter( + (x) => ![...this._activeRelays.keys()].includes(x) + ); + }; + updateAvailable(); + let relayPromises = []; if (0 === available.length) { return; } while ( this._activeRelays.size <= - Math.min(this._maxConnections, available.length + this._activeRelays.size) + Math.min(this._maxConnections, available.length) ) { const relayIndex = await randomNumber(0, available.length - 1);