diff --git a/src/libos/src/fs/channel.rs b/src/libos/src/fs/channel.rs index 3b266c9d..6574450f 100644 --- a/src/libos/src/fs/channel.rs +++ b/src/libos/src/fs/channel.rs @@ -280,6 +280,10 @@ impl Producer { impl Producer { pub fn push_slice(&self, items: &[I]) -> Result { + if items.len() == 0 { + return Ok(0); + } + waiter_loop!( { let mut rb_producer = self.inner.lock().unwrap(); @@ -377,6 +381,10 @@ impl Consumer { impl Consumer { pub fn pop_slice(&self, items: &mut [I]) -> Result { + if items.len() == 0 { + return Ok(0); + } + waiter_loop!( { let mut rb_consumer = self.inner.lock().unwrap();