Procházet zdrojové kódy

Fix error handling for closed channel.

fixes #417
Konstantin Seiler před 4 roky
rodič
revize
362106df62
1 změnil soubory, kde provedl 2 přidání a 1 odebrání
  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!(),
         };