diff --git a/vicky/src/bin/vicky/main.rs b/vicky/src/bin/vicky/main.rs index 9f70e81..99628d6 100644 --- a/vicky/src/bin/vicky/main.rs +++ b/vicky/src/bin/vicky/main.rs @@ -162,7 +162,7 @@ async fn inner_main() -> Result<()> { select! { e = web_task => e.map(|_| ()).context(startup::JoinErr)?, _ = task_timeout_sweeper => panic!("Task timeout sweeper shouldn't exit"), - _ = scheduler_join_handle => panic!("Scheduler shouldn't exit"), + e = scheduler_join_handle => panic!("Scheduler shouldn't exit. Returned: {:?}", e), } Ok(()) diff --git a/vicky/src/lib/vicky/scheduler.rs b/vicky/src/lib/vicky/scheduler.rs index 4a6b4b9..00a96d2 100644 --- a/vicky/src/lib/vicky/scheduler.rs +++ b/vicky/src/lib/vicky/scheduler.rs @@ -99,8 +99,10 @@ impl Scheduler { tokio::select! { res = global_events_rx.recv() => { // wait for changed or new tasks... - if res.is_err() { - return Err(SchedulerError::ChannelClosed.into()); + match res { + Ok(_) => {}, + Err(tokio::sync::broadcast::error::RecvError::Lagged(_)) => {}, + Err(_) => return Err(SchedulerError::ChannelClosed.into()), } } res = fairy_handles_rx.recv() => {