INNER CODE UNIT · Rust
spawn_usb_monitor
owu/wsl-dashboard · src/app/tasks/mod.rs:56
pub fn spawn_usb_monitor(app_handle: slint::Weak<AppWindow>) {
tokio::spawn(async move {
let mut interval = tokio::time::interval(std::time::Duration::from_secs(5));
interval.set_missed_tick_behavior(tokio::time::MissedTickBehavior::Skip);
loop {
interval.tick().await;
let ah = app_handle.clone();
let _ = slint::invoke_from_event_loop(move || {
if let Some(app) = ah.upgrade() {
// Only refresh if the USB tab (index 2) is selected to save resources
if app.get_selected_tab() == 2 {
app.invoke_refresh_usb(false);
}
}
});
}
});
}