From 4eb9375b625df0e034a28343e5c12d83670a19ba Mon Sep 17 00:00:00 2001 From: Alvaro Revuelta Date: Mon, 9 Jan 2023 21:45:50 +0100 Subject: [PATCH] refactor(networking): wait for all futures together in connectToNodes (#1471) * refactor(networking): wait for all futures together in connectToNodes * refactor(networking): await fix style --- waku/v2/node/peer_manager/peer_manager.nim | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/waku/v2/node/peer_manager/peer_manager.nim b/waku/v2/node/peer_manager/peer_manager.nim index e1c2f377d..68f69e65a 100644 --- a/waku/v2/node/peer_manager/peer_manager.nim +++ b/waku/v2/node/peer_manager/peer_manager.nim @@ -269,10 +269,13 @@ proc connectToNodes*(pm: PeerManager, source = "api") {.async.} = info "connectToNodes", len = nodes.len + var futConns: seq[Future[Option[Connection]]] for node in nodes: let node = when node is string: parseRemotePeerInfo(node) else: node - discard await pm.dialPeer(RemotePeerInfo(node), proto, dialTimeout, source) + futConns.add(pm.dialPeer(RemotePeerInfo(node), proto, dialTimeout, source)) + + await allFutures(futConns) # The issue seems to be around peers not being fully connected when # trying to subscribe. So what we do is sleep to guarantee nodes are