Nothing much
This commit is contained in:
parent
b26af687b7
commit
c2affa8865
3 changed files with 13 additions and 7 deletions
|
|
@ -187,7 +187,8 @@ impl TorrentManager {
|
|||
|
||||
async fn stats_printer(self) -> anyhow::Result<()> {
|
||||
loop {
|
||||
let live_peers = self.inner.locked.read().peers.stats();
|
||||
let live_peer_stats = self.inner.locked.read().peers.stats();
|
||||
let seen_peers_count = self.inner.locked.read().peers.seen().len();
|
||||
let have = self.inner.stats.have.load(Ordering::Relaxed);
|
||||
let fetched = self.inner.stats.fetched_bytes.load(Ordering::Relaxed);
|
||||
let needed = self.inner.needed;
|
||||
|
|
@ -204,10 +205,12 @@ impl TorrentManager {
|
|||
(downloaded as f64 / needed as f64) * 100f64
|
||||
};
|
||||
info!(
|
||||
"Stats: downloaded {:.2}% ({}), peers {:?}, fetched {}, remaining {} out of {}, uploaded {}, total have {}",
|
||||
"Stats: downloaded {:.2}% ({:.2}), peers {{live: {}, connecting: {}, seen: {}}}, fetched {}, remaining {:.2} out of {:.2}, uploaded {:.2}, total have {:.2}",
|
||||
downloaded_pct,
|
||||
SF::new(downloaded),
|
||||
live_peers,
|
||||
live_peer_stats.live,
|
||||
live_peer_stats.connecting,
|
||||
seen_peers_count,
|
||||
SF::new(fetched),
|
||||
SF::new(remaining),
|
||||
SF::new(needed),
|
||||
|
|
|
|||
|
|
@ -43,7 +43,7 @@ impl From<&ChunkInfo> for InflightRequest {
|
|||
#[derive(Default)]
|
||||
pub struct PeerStates {
|
||||
states: HashMap<PeerHandle, PeerState>,
|
||||
seen_peers: HashSet<SocketAddr>,
|
||||
seen: HashSet<SocketAddr>,
|
||||
inflight_pieces: HashSet<ValidPieceIndex>,
|
||||
tx: HashMap<PeerHandle, Arc<tokio::sync::mpsc::Sender<WriterRequest>>>,
|
||||
}
|
||||
|
|
@ -71,13 +71,16 @@ impl PeerStates {
|
|||
addr: SocketAddr,
|
||||
tx: tokio::sync::mpsc::Sender<WriterRequest>,
|
||||
) -> Option<PeerHandle> {
|
||||
if self.seen_peers.contains(&addr) {
|
||||
if self.seen.contains(&addr) {
|
||||
return None;
|
||||
}
|
||||
let handle = self.add(addr, tx)?;
|
||||
self.seen_peers.insert(addr);
|
||||
self.seen.insert(addr);
|
||||
Some(handle)
|
||||
}
|
||||
pub fn seen(&self) -> &HashSet<SocketAddr> {
|
||||
&self.seen
|
||||
}
|
||||
pub fn get_live(&self, handle: PeerHandle) -> Option<&LivePeerState> {
|
||||
if let PeerState::Live(ref l) = self.states.get(&handle)? {
|
||||
return Some(l);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue