Don't panic if events are lagged
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
Alex Mikhalev 2020-09-27 22:04:37 -06:00
parent 244eea66eb
commit cf9a7a02ef

View File

@ -7,7 +7,7 @@ use tokio::{
sync::{broadcast, oneshot},
task::JoinHandle,
};
use tracing::{trace, trace_span};
use tracing::{trace, trace_span, warn};
use tracing_futures::Instrument;
struct UpdateListenerTask {
@ -21,13 +21,17 @@ impl UpdateListenerTask {
event: Result<SectionEvent, broadcast::RecvError>,
) -> eyre::Result<()> {
let event = match event {
Ok(ev) => ev,
Err(broadcast::RecvError::Closed) => {
trace!("section events channel closed");
self.running = false;
return Ok(());
}
e => e,
}?;
Err(broadcast::RecvError::Lagged(n)) => {
warn!("section events lagged by {}", n);
return Ok(());
}
};
if let Some((sec_id, state)) = match event {
SectionEvent::RunStart(_, sec) | SectionEvent::RunUnpause(_, sec) => {
Some((sec.id, true))