Fix pushing/popping zero-length slices to/from Channel
This commit is contained in:
		
							parent
							
								
									10f3ffa9e6
								
							
						
					
					
						commit
						798cbfd843
					
				| @ -280,6 +280,10 @@ impl<I> Producer<I> { | |||||||
| 
 | 
 | ||||||
| impl<I: Copy> Producer<I> { | impl<I: Copy> Producer<I> { | ||||||
|     pub fn push_slice(&self, items: &[I]) -> Result<usize> { |     pub fn push_slice(&self, items: &[I]) -> Result<usize> { | ||||||
|  |         if items.len() == 0 { | ||||||
|  |             return Ok(0); | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|         waiter_loop!( |         waiter_loop!( | ||||||
|             { |             { | ||||||
|                 let mut rb_producer = self.inner.lock().unwrap(); |                 let mut rb_producer = self.inner.lock().unwrap(); | ||||||
| @ -377,6 +381,10 @@ impl<I> Consumer<I> { | |||||||
| 
 | 
 | ||||||
| impl<I: Copy> Consumer<I> { | impl<I: Copy> Consumer<I> { | ||||||
|     pub fn pop_slice(&self, items: &mut [I]) -> Result<usize> { |     pub fn pop_slice(&self, items: &mut [I]) -> Result<usize> { | ||||||
|  |         if items.len() == 0 { | ||||||
|  |             return Ok(0); | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|         waiter_loop!( |         waiter_loop!( | ||||||
|             { |             { | ||||||
|                 let mut rb_consumer = self.inner.lock().unwrap(); |                 let mut rb_consumer = self.inner.lock().unwrap(); | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user