Workaround for Rust 1.33 borrow checker.
@@ -502,6 +502,7 @@ impl Future for Main {
progress = true;
}
+ let mut try_to_reconnect = false;
if let Some(ref mut spirc_task) = self.spirc_task {
if let Async::Ready(()) = spirc_task.poll().unwrap() {
if self.shutdown {
@@ -510,6 +511,12 @@ impl Future for Main {
warn!("Spirc shut down unexpectedly");
self.spirc_task = None;
+ try_to_reconnect = true;
+ }
+ progress = true;
+ }
+ }
+ if try_to_reconnect {
while (!self.auto_connect_times.is_empty()) && ((Instant::now() - self.auto_connect_times[0]).as_secs() > 600) {
let _ = self.auto_connect_times.remove(0);
}
@@ -523,9 +530,7 @@ impl Future for Main {
}
}
}
- progress = true;
- }
- }
+
if let Some(ref mut player_event_channel) = self.player_event_channel {
if let Async::Ready(Some(event)) = player_event_channel.poll().unwrap() {
