diff options
Diffstat (limited to 'runtime/ops/io.rs')
-rw-r--r-- | runtime/ops/io.rs | 32 |
1 files changed, 11 insertions, 21 deletions
diff --git a/runtime/ops/io.rs b/runtime/ops/io.rs index 34cd541d5..27a48a961 100644 --- a/runtime/ops/io.rs +++ b/runtime/ops/io.rs @@ -174,13 +174,13 @@ where async fn read( self: Rc<Self>, mut buf: ZeroCopyBuf, - ) -> Result<(usize, ZeroCopyBuf), AnyError> { + ) -> Result<usize, AnyError> { let mut rd = self.borrow_mut().await; let nread = rd .read(&mut buf) .try_or_cancel(self.cancel_handle()) .await?; - Ok((nread, buf)) + Ok(nread) } pub fn into_inner(self) -> S { @@ -211,10 +211,7 @@ impl Resource for ChildStdoutResource { "childStdout".into() } - fn read_return( - self: Rc<Self>, - buf: ZeroCopyBuf, - ) -> AsyncResult<(usize, ZeroCopyBuf)> { + fn read(self: Rc<Self>, buf: ZeroCopyBuf) -> AsyncResult<usize> { Box::pin(self.read(buf)) } @@ -230,10 +227,7 @@ impl Resource for ChildStderrResource { "childStderr".into() } - fn read_return( - self: Rc<Self>, - buf: ZeroCopyBuf, - ) -> AsyncResult<(usize, ZeroCopyBuf)> { + fn read(self: Rc<Self>, buf: ZeroCopyBuf) -> AsyncResult<usize> { Box::pin(self.read(buf)) } @@ -277,17 +271,16 @@ impl StdFileResource { async fn read( self: Rc<Self>, mut buf: ZeroCopyBuf, - ) -> Result<(usize, ZeroCopyBuf), AnyError> { + ) -> Result<usize, AnyError> { if self.fs_file.is_some() { let fs_file = self.fs_file.as_ref().unwrap(); let std_file = fs_file.0.as_ref().unwrap().clone(); - tokio::task::spawn_blocking( - move || -> Result<(usize, ZeroCopyBuf), AnyError> { - let mut std_file = std_file.lock().unwrap(); - Ok((std_file.read(&mut buf)?, buf)) - }, - ) + tokio::task::spawn_blocking(move || { + let mut std_file = std_file.lock().unwrap(); + std_file.read(&mut buf) + }) .await? + .map_err(AnyError::from) } else { Err(resource_unavailable()) } @@ -337,10 +330,7 @@ impl Resource for StdFileResource { self.name.as_str().into() } - fn read_return( - self: Rc<Self>, - buf: ZeroCopyBuf, - ) -> AsyncResult<(usize, ZeroCopyBuf)> { + fn read(self: Rc<Self>, buf: ZeroCopyBuf) -> AsyncResult<usize> { Box::pin(self.read(buf)) } |