mirror of
https://github.com/fluencelabs/rust-libp2p
synced 2025-05-28 10:11:19 +00:00
Don't set KeepAlive to Until all the time (#1398)
* Don't set KeepAlive to Until all the time * Address concerns
This commit is contained in:
parent
c241014ddb
commit
0ed684ee30
@ -403,7 +403,7 @@ where
|
||||
allow_listening,
|
||||
next_connec_unique_id: UniqueConnecId(0),
|
||||
substreams: Vec::new(),
|
||||
keep_alive: KeepAlive::Yes,
|
||||
keep_alive: KeepAlive::Until(Instant::now() + Duration::from_secs(10)),
|
||||
}
|
||||
}
|
||||
|
||||
@ -645,6 +645,10 @@ where
|
||||
) -> Poll<
|
||||
ProtocolsHandlerEvent<Self::OutboundProtocol, Self::OutboundOpenInfo, Self::OutEvent, Self::Error>,
|
||||
> {
|
||||
if self.substreams.is_empty() {
|
||||
return Poll::Pending;
|
||||
}
|
||||
|
||||
// We remove each element from `substreams` one by one and add them back.
|
||||
for n in (0..self.substreams.len()).rev() {
|
||||
let mut substream = self.substreams.swap_remove(n);
|
||||
@ -656,6 +660,9 @@ where
|
||||
return Poll::Ready(event);
|
||||
}
|
||||
(None, Some(event), _) => {
|
||||
if self.substreams.is_empty() {
|
||||
self.keep_alive = KeepAlive::Until(Instant::now() + Duration::from_secs(10));
|
||||
}
|
||||
return Poll::Ready(event);
|
||||
}
|
||||
(Some(new_state), None, false) => {
|
||||
@ -674,6 +681,7 @@ where
|
||||
}
|
||||
|
||||
if self.substreams.is_empty() {
|
||||
// We destroyed all substreams in this function.
|
||||
self.keep_alive = KeepAlive::Until(Instant::now() + Duration::from_secs(10));
|
||||
} else {
|
||||
self.keep_alive = KeepAlive::Yes;
|
||||
|
Loading…
x
Reference in New Issue
Block a user