Works pretty well now!

This commit is contained in:
Igor Katson 2024-04-26 09:52:32 +01:00
parent ffc662e370
commit 9474a6d52e
2 changed files with 13 additions and 5 deletions

View file

@ -740,11 +740,11 @@ impl TorrentStateLive {
}
pub(crate) fn reconnect_all_not_needed_peers(&self) {
for pe in self.peers.states.iter() {
if let PeerState::NotNeeded = pe.value().state.get() {
if self.peer_queue_tx.send(*pe.key()).is_err() {
return;
}
for mut pe in self.peers.states.iter_mut() {
if pe.state.not_needed_to_queued(&self.peers.stats)
&& self.peer_queue_tx.send(*pe.key()).is_err()
{
return;
}
}
}

View file

@ -123,6 +123,14 @@ impl PeerStateNoMut {
}
}
pub fn not_needed_to_queued(&mut self, counters: &AggregatePeerStatsAtomic) -> bool {
if let PeerState::NotNeeded = &self.0 {
self.set(PeerState::Queued, counters);
return true;
}
false
}
pub fn incoming_connection(
&mut self,
peer_id: Id20,