Do not send regular status updates during syncing (#1375)

This commit is contained in:
blacktemplar 2020-07-22 07:39:56 +02:00 committed by GitHub
parent 2870172e0d
commit f61a7113ac
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -714,16 +714,20 @@ impl<TSpec: EthSpec> Stream for PeerManager<TSpec> {
} }
} }
loop { // We don't want to update peers during syncing, since this may result in a new chain being
match self.status_peers.poll_next_unpin(cx) { // synced which leads to inefficient re-downloads of blocks.
Poll::Ready(Some(Ok(peer_id))) => { if !self.network_globals.is_syncing() {
self.status_peers.insert(peer_id.clone()); loop {
self.events.push(PeerManagerEvent::Status(peer_id)) match self.status_peers.poll_next_unpin(cx) {
Poll::Ready(Some(Ok(peer_id))) => {
self.status_peers.insert(peer_id.clone());
self.events.push(PeerManagerEvent::Status(peer_id))
}
Poll::Ready(Some(Err(e))) => {
error!(self.log, "Failed to check for peers to ping"; "error" => e.to_string())
}
Poll::Ready(None) | Poll::Pending => break,
} }
Poll::Ready(Some(Err(e))) => {
error!(self.log, "Failed to check for peers to ping"; "error" => e.to_string())
}
Poll::Ready(None) | Poll::Pending => break,
} }
} }