From 798cbfd84391ad381b3b9689753ede9b69f59f02 Mon Sep 17 00:00:00 2001 From: "Tate, Hongliang Tian" Date: Sat, 14 Nov 2020 05:00:30 +0000 Subject: [PATCH] Fix pushing/popping zero-length slices to/from Channel --- src/libos/src/fs/channel.rs | 8 ++++++++ 1 file changed, 8 insertions(+) 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();