close unused PeerInfo instance

Should not be needed from the GC's point of view, but needed when
gathering Future.state statistics, due to `PeerInfo.lifefut`.
This commit is contained in:
Ștefan Talpalaru 2020-03-29 23:56:25 +02:00
parent b44ba24142
commit 97abe77398
No known key found for this signature in database
GPG Key ID: CBF7934204F1B6F9
1 changed files with 7 additions and 4 deletions

View File

@ -663,13 +663,16 @@ proc runDiscoveryLoop*(node: Eth2Node) {.async.} =
try: try:
let discoveredPeers = let discoveredPeers =
node.discovery.randomNodes(node.wantedPeers - currentPeerCount) node.discovery.randomNodes(node.wantedPeers - currentPeerCount)
debug "Discovered peers", peer = $discoveredPeers
for peer in discoveredPeers: for peer in discoveredPeers:
try: try:
let peerInfo = peer.record.toTypedRecord.toPeerInfo let peerInfo = peer.record.toTypedRecord.toPeerInfo
if peerInfo != nil and peerInfo.id notin node.switch.connections: if peerInfo != nil:
if peerInfo.id notin node.switch.connections:
debug "Discovered new peer", peer = $peer
# TODO do this in parallel # TODO do this in parallel
await node.dialPeer(peerInfo) await node.dialPeer(peerInfo)
else:
peerInfo.close()
except CatchableError as err: except CatchableError as err:
debug "Failed to connect to peer", peer = $peer, err = err.msg debug "Failed to connect to peer", peer = $peer, err = err.msg
except CatchableError as err: except CatchableError as err: