Ver código fonte

Fix error handling for closed channel.

fixes #417
Konstantin Seiler 4 anos atrás
pai
commit
362106df62
1 arquivos alterados com 2 adições e 1 exclusões
  1. 2 1
      core/src/channel.rs

+ 2 - 1
core/src/channel.rs

@@ -92,7 +92,8 @@ impl ChannelManager {
 impl Channel {
     fn recv_packet(&mut self) -> Poll<Bytes, ChannelError> {
         let (cmd, packet) = match self.receiver.poll() {
-            Ok(Async::Ready(t)) => t.expect("channel closed"),
+            Ok(Async::Ready(Some(t))) => t,
+            Ok(Async::Ready(None)) => return Err(ChannelError), // The channel has been closed.
             Ok(Async::NotReady) => return Ok(Async::NotReady),
             Err(()) => unreachable!(),
         };