From 915cd1f108008b614f0031b96d5225ecbae98d90 Mon Sep 17 00:00:00 2001 From: Mubelotix Date: Tue, 12 Aug 2025 12:11:30 +0200 Subject: [PATCH] Optim N: Clone task ids instead of matched tasks --- crates/index-scheduler/src/scheduler/process_batch.rs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/crates/index-scheduler/src/scheduler/process_batch.rs b/crates/index-scheduler/src/scheduler/process_batch.rs index 8a584509f..745009ce2 100644 --- a/crates/index-scheduler/src/scheduler/process_batch.rs +++ b/crates/index-scheduler/src/scheduler/process_batch.rs @@ -99,7 +99,7 @@ impl IndexScheduler { } } - let mut deleted_tasks = self.delete_matched_tasks(matched_tasks.clone(), &progress)?; + let mut deleted_tasks = self.delete_matched_tasks(&matched_tasks, &progress)?; for task in tasks.iter_mut() { task.status = Status::Succeeded; @@ -508,7 +508,7 @@ impl IndexScheduler { #[allow(clippy::reversed_empty_ranges)] fn delete_matched_tasks( &self, - matched_tasks: RoaringBitmap, + matched_tasks: &RoaringBitmap, progress: &Progress, ) -> Result { /// Given a **sorted** iterator of `u32`, return an iterator of the ranges of consecutive values it contains. @@ -641,7 +641,7 @@ impl IndexScheduler { let enqueued_tasks = self.queue.tasks.get_status(&rtxn, Status::Enqueued)?; let processing_tasks = &self.processing_tasks.read().unwrap().processing.clone(); let all_task_ids = &self.queue.tasks.all_task_ids(&rtxn)?; - let mut to_delete_tasks = matched_tasks & all_task_ids; + let mut to_delete_tasks = all_task_ids.clone() & matched_tasks; to_delete_tasks -= &**processing_tasks; to_delete_tasks -= &enqueued_tasks;