INNER CODE UNIT · Rust

cancel_task

HemantKArya/BloomeeTunes · rust/src/api/downloader/mod.rs:319

    pub async fn cancel_task(&self, task_id: String, delete_partial: bool) -> bool {
        let Some(task) = self.get_task(&task_id) else { return false };

        let (remove_now, temp_path, target_path) = {
            let mut g = match task.lock() {
                Ok(g) => g,
                Err(_) => return false,
            };
            g.cancel_requested.store(true, Ordering::Release);
            g.delete_partial_on_cancel.store(delete_partial, Ordering::Release);

            let remove_now = !g.running;
            if remove_now {
                g.persisted.state = DownloadTaskState::Cancelled;
                g.persisted.message = Some("Cancelled".to_string());
            }
            (remove_now, g.persisted.temp_path.clone(), g.persisted.target_path.clone())
        };

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…