diff --git a/crates/librqbit_core/src/spawn_utils.rs b/crates/librqbit_core/src/spawn_utils.rs index 6893e19..20c1bb2 100644 --- a/crates/librqbit_core/src/spawn_utils.rs +++ b/crates/librqbit_core/src/spawn_utils.rs @@ -6,12 +6,25 @@ pub fn spawn( ) -> tokio::task::JoinHandle<()> { let fut = async move { trace!("started"); - match fut.await { - Ok(_) => { - trace!("finished"); - } - Err(e) => { - error!("finished with error: {:#}", e) + tokio::pin!(fut); + let mut trace_interval = tokio::time::interval(std::time::Duration::from_secs(5)); + + loop { + tokio::select! { + _ = trace_interval.tick() => { + trace!("still running"); + }, + r = &mut fut => { + match r { + Ok(_) => { + trace!("finished"); + } + Err(e) => { + error!("finished with error: {:#}", e) + } + } + return; + } } } }