From 57f7e07c13a1a692602022af4fc32c6ac352bb72 Mon Sep 17 00:00:00 2001 From: Divy Srivastava Date: Fri, 22 Apr 2022 16:19:08 +0530 Subject: Reland "perf(http): optimize ReadableStreams backed by a resource" (#14346) --- ext/fetch/lib.rs | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'ext/fetch') diff --git a/ext/fetch/lib.rs b/ext/fetch/lib.rs index c216d53fa..def823d8f 100644 --- a/ext/fetch/lib.rs +++ b/ext/fetch/lib.rs @@ -485,12 +485,15 @@ impl Resource for FetchResponseBodyResource { "fetchResponseBody".into() } - fn read(self: Rc, mut buf: ZeroCopyBuf) -> AsyncResult { + fn read_return( + self: Rc, + mut buf: ZeroCopyBuf, + ) -> AsyncResult<(usize, ZeroCopyBuf)> { Box::pin(async move { let mut reader = RcRef::map(&self, |r| &r.reader).borrow_mut().await; let cancel = RcRef::map(self, |r| &r.cancel); let read = reader.read(&mut buf).try_or_cancel(cancel).await?; - Ok(read) + Ok((read, buf)) }) } -- cgit v1.2.3