diff --git a/crates/net/eth-wire/src/p2pstream.rs b/crates/net/eth-wire/src/p2pstream.rs index 76075838bc..9bb8fe7c39 100644 --- a/crates/net/eth-wire/src/p2pstream.rs +++ b/crates/net/eth-wire/src/p2pstream.rs @@ -614,24 +614,19 @@ where /// Returns `Poll::Ready(Ok(()))` when no buffered items remain. fn poll_flush(self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll> { let mut this = self.project(); - let poll_res = loop { - match this.inner.as_mut().poll_ready(cx) { - Poll::Pending => break Poll::Pending, - Poll::Ready(Err(err)) => break Poll::Ready(Err(err.into())), - Poll::Ready(Ok(())) => { + loop { + match ready!(this.inner.as_mut().poll_flush(cx)) { + Err(err) => return Poll::Ready(Err(err.into())), + Ok(()) => { let Some(message) = this.outgoing_messages.pop_front() else { - break Poll::Ready(Ok(())) + return Poll::Ready(Ok(())) }; if let Err(err) = this.inner.as_mut().start_send(message) { - break Poll::Ready(Err(err.into())) + return Poll::Ready(Err(err.into())) } } } - }; - - ready!(this.inner.as_mut().poll_flush(cx))?; - - poll_res + } } fn poll_close(mut self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll> {