diff --git a/core/src/channel.rs b/core/src/channel.rs index a4785eb8..d86b252f 100644 --- a/core/src/channel.rs +++ b/core/src/channel.rs @@ -92,7 +92,8 @@ impl ChannelManager { impl Channel { fn recv_packet(&mut self) -> Poll { 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!(), };