Fix a missing loop in SwarmFuture::poll (#272)

This commit is contained in:
Pierre Krieger 2018-06-25 14:29:15 +02:00 committed by GitHub
parent 0f0ae368b8
commit de39e321e9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -191,6 +191,7 @@ where
fn poll(&mut self) -> Poll<Self::Item, Self::Error> { fn poll(&mut self) -> Poll<Self::Item, Self::Error> {
let handler = &mut self.handler; let handler = &mut self.handler;
loop {
match self.next_incoming.poll() { match self.next_incoming.poll() {
Ok(Async::Ready(connec)) => { Ok(Async::Ready(connec)) => {
debug!("Swarm received new multiplexed incoming connection"); debug!("Swarm received new multiplexed incoming connection");
@ -200,10 +201,12 @@ where
}); });
self.listeners_upgrade.push(Box::new(connec) as Box<_>); self.listeners_upgrade.push(Box::new(connec) as Box<_>);
} }
Ok(Async::NotReady) => {} Ok(Async::NotReady) => break,
Err(err) => { Err(err) => {
debug!("Error in multiplexed incoming connection: {:?}", err); debug!("Error in multiplexed incoming connection: {:?}", err);
self.next_incoming = self.transport.clone().next_incoming(); self.next_incoming = self.transport.clone().next_incoming();
break;
}
} }
} }