Fix the poll of channel according to gvisor pipe poll test
This commit is contained in:
		
							parent
							
								
									2ea7fc1ad6
								
							
						
					
					
						commit
						1788f94bfe
					
				| @ -2,6 +2,6 @@ | |||||||
| 
 | 
 | ||||||
| [](https://codecov.io/gh/occlum/occlum) | [](https://codecov.io/gh/occlum/occlum) | ||||||
| 
 | 
 | ||||||
| Occlum are written in different languages. Only *Rust* code coverage is enabled, | Occlum is written in different languages. Only *Rust* code coverage is enabled, | ||||||
| currently. Besides, the coverage data is only collected during `make test` and | currently. Besides, the coverage data is only collected during `make test` and | ||||||
| `make test-glibc`. Adding more tests will improve the coverage data. | `make test-glibc`. Adding more tests will improve the coverage data. | ||||||
|  | |||||||
| @ -247,7 +247,7 @@ impl<I> Producer<I> { | |||||||
| 
 | 
 | ||||||
|         let writable = { |         let writable = { | ||||||
|             let mut rb_producer = self.inner.lock().unwrap(); |             let mut rb_producer = self.inner.lock().unwrap(); | ||||||
|             !rb_producer.is_full() || self.is_self_shutdown() || self.is_peer_shutdown() |             !rb_producer.is_full() || self.is_self_shutdown() | ||||||
|         }; |         }; | ||||||
|         if writable { |         if writable { | ||||||
|             events |= IoEvents::OUT; |             events |= IoEvents::OUT; | ||||||
| @ -373,7 +373,7 @@ impl<I> Consumer<I> { | |||||||
| 
 | 
 | ||||||
|         let readable = { |         let readable = { | ||||||
|             let mut rb_consumer = self.inner.lock().unwrap(); |             let mut rb_consumer = self.inner.lock().unwrap(); | ||||||
|             !rb_consumer.is_empty() || self.is_self_shutdown() || self.is_peer_shutdown() |             !rb_consumer.is_empty() || self.is_self_shutdown() | ||||||
|         }; |         }; | ||||||
|         if readable { |         if readable { | ||||||
|             events |= IoEvents::IN; |             events |= IoEvents::IN; | ||||||
|  | |||||||
| @ -109,9 +109,9 @@ impl Inner { | |||||||
|         let writer_events = self.writer.poll(); |         let writer_events = self.writer.poll(); | ||||||
| 
 | 
 | ||||||
|         if reader_events.contains(IoEvents::HUP) || self.reader.is_self_shutdown() { |         if reader_events.contains(IoEvents::HUP) || self.reader.is_self_shutdown() { | ||||||
|             events |= IoEvents::RDHUP; |             events |= IoEvents::RDHUP | IoEvents::IN; | ||||||
|             if writer_events.contains(IoEvents::ERR) || self.writer.is_self_shutdown() { |             if writer_events.contains(IoEvents::ERR) || self.writer.is_self_shutdown() { | ||||||
|                 events |= IoEvents::HUP; |                 events |= IoEvents::HUP | IoEvents::OUT; | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user