From 5bf9e631817dcc98b0585388a4f7994e96a8db35 Mon Sep 17 00:00:00 2001 From: Arkadiy Paronyan <arkady.paronyan@gmail.com> Date: Thu, 21 May 2020 13:54:50 +0200 Subject: [PATCH] Optimize network poll (#6099) --- .../src/protocol/generic_proto/behaviour.rs | 25 ++++++------------- 1 file changed, 7 insertions(+), 18 deletions(-) diff --git a/substrate/client/network/src/protocol/generic_proto/behaviour.rs b/substrate/client/network/src/protocol/generic_proto/behaviour.rs index 9d48d40bdfa..b3c209eb0c0 100644 --- a/substrate/client/network/src/protocol/generic_proto/behaviour.rs +++ b/substrate/client/network/src/protocol/generic_proto/behaviour.rs @@ -1364,10 +1364,9 @@ impl NetworkBehaviour for GenericProto { } for (peer_id, peer_state) in self.peers.iter_mut() { - match mem::replace(peer_state, PeerState::Poisoned) { - PeerState::PendingRequest { mut timer, timer_deadline } => { - if let Poll::Pending = Pin::new(&mut timer).poll(cx) { - *peer_state = PeerState::PendingRequest { timer, timer_deadline }; + match peer_state { + PeerState::PendingRequest { timer, .. } => { + if let Poll::Pending = Pin::new(timer).poll(cx) { continue; } @@ -1379,17 +1378,8 @@ impl NetworkBehaviour for GenericProto { *peer_state = PeerState::Requested; } - PeerState::DisabledPendingEnable { - mut timer, - open, - timer_deadline - } => { - if let Poll::Pending = Pin::new(&mut timer).poll(cx) { - *peer_state = PeerState::DisabledPendingEnable { - timer, - open, - timer_deadline - }; + PeerState::DisabledPendingEnable { timer, open, .. } => { + if let Poll::Pending = Pin::new(timer).poll(cx) { continue; } @@ -1399,10 +1389,9 @@ impl NetworkBehaviour for GenericProto { handler: NotifyHandler::All, event: NotifsHandlerIn::Enable, }); - *peer_state = PeerState::Enabled { open }; + *peer_state = PeerState::Enabled { open: mem::replace(open, Default::default()) }; } - - st => *peer_state = st, + _ => {}, } } -- GitLab