Explorar el Código

Fix error handling for closed channel.

fixes #417
Konstantin Seiler hace 4 años
padre
commit
362106df62
Se han modificado 1 ficheros con 2 adiciones y 1 borrados
  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!(),
         };