perf(disc): evict after processing incoming packets (#1400)

This commit is contained in:
Matthias Seitz
2023-02-16 21:45:32 +01:00
committed by GitHub
parent 8547fbfaed
commit ae2441a9f9

View File

@ -1256,6 +1256,8 @@ impl Discv4Service {
true
});
debug!(target: "discv4", num=%failed_neighbours.len(), "processing failed neighbours");
for node_id in failed_neighbours {
let key = kad_key(node_id);
let failures = match self.kbuckets.entry(&key) {
@ -1369,11 +1371,6 @@ impl Discv4Service {
self.lookup_with(target, None);
}
// evict expired nodes
if self.evict_expired_requests_interval.poll_tick(cx).is_ready() {
self.evict_expired_requests(Instant::now())
}
// re-ping some peers
if self.ping_interval.poll_tick(cx).is_ready() {
self.re_ping_oldest();
@ -1486,6 +1483,11 @@ impl Discv4Service {
// try resending buffered pings
self.ping_buffered();
// evict expired nodes
if self.evict_expired_requests_interval.poll_tick(cx).is_ready() {
self.evict_expired_requests(Instant::now())
}
if self.queued_events.is_empty() {
return Poll::Pending
}