@@ -1636,6 +1636,7 @@ pub(crate) macro limit_slices($bufs:expr, $n:expr) {
16361636 ' slices: {
16371637 let bufs: & [ IoSlice < ' _ > ] = $bufs;
16381638 let n: usize = $n;
1639+ super let empty = & [ IoSlice :: new ( & [ ] ) ] ;
16391640 // if bufs.len() > n || bufs.is_empty()
16401641 if core:: intrinsics:: unlikely ( bufs. len ( ) . wrapping_sub ( 1 ) >= n) {
16411642 for ( i, buf) in bufs. iter ( ) . enumerate ( ) {
@@ -1644,10 +1645,9 @@ pub(crate) macro limit_slices($bufs:expr, $n:expr) {
16441645 break ' slices & bufs[ i..i + len] ;
16451646 }
16461647 }
1647- // All buffers are empty. Since POSIX requires at least one buffer
1648- // for [writev], but possibly bufs.is_empty(), return an empty write.
1649- // [writev]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/writev.html
1650- return Ok ( 0 ) ;
1648+ // POSIX requires at least one buffer for writev.
1649+ // https://pubs.opengroup.org/onlinepubs/9799919799/functions/writev.html
1650+ break ' slices empty;
16511651 }
16521652 bufs
16531653 }
@@ -1663,6 +1663,7 @@ pub(crate) macro limit_slices_mut($bufs:expr, $n:expr) {
16631663 ' slices: {
16641664 let bufs: & mut [ IoSliceMut < ' _ > ] = $bufs;
16651665 let n: usize = $n;
1666+ super let empty = & mut [ IoSliceMut :: new ( & mut [ ] ) ] ;
16661667 // if bufs.len() > n || bufs.is_empty()
16671668 if core:: intrinsics:: unlikely ( bufs. len ( ) . wrapping_sub ( 1 ) >= n) {
16681669 for ( i, buf) in bufs. iter ( ) . enumerate ( ) {
@@ -1671,10 +1672,9 @@ pub(crate) macro limit_slices_mut($bufs:expr, $n:expr) {
16711672 break ' slices & mut bufs[ i..i + len] ;
16721673 }
16731674 }
1674- // All buffers are empty. Since POSIX requires at least one buffer
1675- // for [readv], but possibly bufs.is_empty(), return an empty read.
1676- // [readv]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/readv.html
1677- return Ok ( 0 ) ;
1675+ // POSIX requires at least one buffer for readv.
1676+ // https://pubs.opengroup.org/onlinepubs/9799919799/functions/readv.html
1677+ break ' slices empty;
16781678 }
16791679 bufs
16801680 }
0 commit comments