diff options
| author | Matthias Krüger <matthias.krueger@famsik.de> | 2024-05-21 00:47:03 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-05-21 00:47:03 +0200 |
| commit | 73bb47eecd6ff1968e562b9c0dffbb83103411e8 (patch) | |
| tree | 1171e2529e57b3fcf9756eb321d702cfce0fcb28 | |
| parent | 75728fe8e0dc55d898aea18b8993896d1aef757e (diff) | |
| parent | d39dc0ab2340547ba24a5153a5076a4554521479 (diff) | |
| download | rust-73bb47eecd6ff1968e562b9c0dffbb83103411e8.tar.gz rust-73bb47eecd6ff1968e562b9c0dffbb83103411e8.zip | |
Rollup merge of #125333 - hermit-os:fuse, r=workingjubilee
switch to the default implementation of `write_vectored` HermitOS doesn't support write_vectored and switch to the default implementation of `write_vectored`.
| -rw-r--r-- | library/std/src/sys/pal/hermit/net.rs | 25 |
1 files changed, 4 insertions, 21 deletions
diff --git a/library/std/src/sys/pal/hermit/net.rs b/library/std/src/sys/pal/hermit/net.rs index 23ac71cb9f2..00dbca86a4b 100644 --- a/library/std/src/sys/pal/hermit/net.rs +++ b/library/std/src/sys/pal/hermit/net.rs @@ -175,23 +175,12 @@ impl Socket { } pub fn read_vectored(&self, bufs: &mut [IoSliceMut<'_>]) -> io::Result<usize> { - let mut size: isize = 0; - - for i in bufs.iter_mut() { - let ret: isize = - cvt(unsafe { netc::read(self.0.as_raw_fd(), i.as_mut_ptr(), i.len()) })?; - - if ret != 0 { - size += ret; - } - } - - Ok(size.try_into().unwrap()) + crate::io::default_read_vectored(|b| self.read(b), bufs) } #[inline] pub fn is_read_vectored(&self) -> bool { - true + false } fn recv_from_with_flags(&self, buf: &mut [u8], flags: i32) -> io::Result<(usize, SocketAddr)> { @@ -225,17 +214,11 @@ impl Socket { } pub fn write_vectored(&self, bufs: &[IoSlice<'_>]) -> io::Result<usize> { - let mut size: isize = 0; - - for i in bufs.iter() { - size += cvt(unsafe { netc::write(self.0.as_raw_fd(), i.as_ptr(), i.len()) })?; - } - - Ok(size.try_into().unwrap()) + crate::io::default_write_vectored(|b| self.write(b), bufs) } pub fn is_write_vectored(&self) -> bool { - true + false } pub fn set_timeout(&self, dur: Option<Duration>, kind: i32) -> io::Result<()> { |
