diff --git a/crates/librqbit/src/torrent_state.rs b/crates/librqbit/src/torrent_state.rs index 76ca4d4..c820436 100644 --- a/crates/librqbit/src/torrent_state.rs +++ b/crates/librqbit/src/torrent_state.rs @@ -857,33 +857,35 @@ struct PeerHandler { impl PeerConnectionHandler for PeerHandler { fn on_received_message(&self, message: Message>) -> anyhow::Result<()> { - match message { - Message::Request(request) => { - self.on_download_request(self.addr, request) - .context("on_download_request")?; - } - Message::Bitfield(b) => self - .on_bitfield(self.addr, b.clone_to_owned()) - .context("on_bitfield")?, - Message::Choke => self.on_i_am_choked(self.addr), - Message::Unchoke => self.on_i_am_unchoked(self.addr), - Message::Interested => self.on_peer_interested(self.addr), - Message::Piece(piece) => { - self.on_received_piece(self.addr, piece) - .context("on_received_piece")?; - } - Message::KeepAlive => { - debug!("keepalive received"); - } - Message::Have(h) => self.on_have(self.addr, h), - Message::NotInterested => { - info!("received \"not interested\", but we don't care yet") - } - message => { - warn!("received unsupported message {:?}, ignoring", message); - } - } - Ok(()) + timeit("on_received_message", || { + match message { + Message::Request(request) => { + self.on_download_request(self.addr, request) + .context("on_download_request")?; + } + Message::Bitfield(b) => self + .on_bitfield(self.addr, b.clone_to_owned()) + .context("on_bitfield")?, + Message::Choke => self.on_i_am_choked(self.addr), + Message::Unchoke => self.on_i_am_unchoked(self.addr), + Message::Interested => self.on_peer_interested(self.addr), + Message::Piece(piece) => { + self.on_received_piece(self.addr, piece) + .context("on_received_piece")?; + } + Message::KeepAlive => { + debug!("keepalive received"); + } + Message::Have(h) => self.on_have(self.addr, h), + Message::NotInterested => { + info!("received \"not interested\", but we don't care yet") + } + message => { + warn!("received unsupported message {:?}, ignoring", message); + } + }; + Ok(()) + }) } fn get_have_bytes(&self) -> u64 {