diff options
Diffstat (limited to 'tokio-util/src/codec/framed_impl.rs')
-rw-r--r-- | tokio-util/src/codec/framed_impl.rs | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/tokio-util/src/codec/framed_impl.rs b/tokio-util/src/codec/framed_impl.rs index e8b29999..207e198d 100644 --- a/tokio-util/src/codec/framed_impl.rs +++ b/tokio-util/src/codec/framed_impl.rs @@ -6,7 +6,7 @@ use tokio::{ stream::Stream, }; -use bytes::{Buf, BytesMut}; +use bytes::BytesMut; use futures_core::ready; use futures_sink::Sink; use log::trace; @@ -189,6 +189,7 @@ where } fn poll_flush(self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll<Result<(), Self::Error>> { + use crate::util::poll_write_buf; trace!("flushing framed transport"); let mut pinned = self.project(); @@ -196,8 +197,7 @@ where let WriteFrame { buffer } = pinned.state.borrow_mut(); trace!("writing; remaining={}", buffer.len()); - let buf = &buffer; - let n = ready!(pinned.inner.as_mut().poll_write(cx, &buf))?; + let n = ready!(poll_write_buf(pinned.inner.as_mut(), cx, buffer))?; if n == 0 { return Poll::Ready(Err(io::Error::new( @@ -207,8 +207,6 @@ where ) .into())); } - - pinned.state.borrow_mut().buffer.advance(n); } // Try flushing the underlying IO |