diff --git a/turbopack/crates/turbo-tasks-backend/src/backend/operation/aggregation_update.rs b/turbopack/crates/turbo-tasks-backend/src/backend/operation/aggregation_update.rs index 27244cade747f1..4b51befac43c6f 100644 --- a/turbopack/crates/turbo-tasks-backend/src/backend/operation/aggregation_update.rs +++ b/turbopack/crates/turbo-tasks-backend/src/backend/operation/aggregation_update.rs @@ -144,6 +144,13 @@ impl AggregatedDataUpdate { dirty_tasks_update: HashMap::from([(task_id, 1)]), } } + + pub fn no_longer_dirty_task(task_id: TaskId) -> Self { + Self { + unfinished: -1, + dirty_tasks_update: HashMap::from([(task_id, -1)]), + } + } } impl Add for AggregatedDataUpdate { diff --git a/turbopack/crates/turbo-tasks-backend/src/backend/operation/cleanup_old_edges.rs b/turbopack/crates/turbo-tasks-backend/src/backend/operation/cleanup_old_edges.rs index ecd71c9df6fff7..1ab8c9ebc32810 100644 --- a/turbopack/crates/turbo-tasks-backend/src/backend/operation/cleanup_old_edges.rs +++ b/turbopack/crates/turbo-tasks-backend/src/backend/operation/cleanup_old_edges.rs @@ -4,7 +4,7 @@ use serde::{Deserialize, Serialize}; use turbo_tasks::TaskId; use super::{ - aggregation_update::{AggregationUpdateJob, AggregationUpdateQueue}, + aggregation_update::{AggregatedDataUpdate, AggregationUpdateJob, AggregationUpdateQueue}, invalidate::make_task_dirty, ExecuteContext, Operation, }; @@ -38,10 +38,15 @@ pub enum OutdatedEdge { impl CleanupOldEdgesOperation { pub fn run(task_id: TaskId, outdated: Vec, ctx: ExecuteContext<'_>) { + let mut queue = AggregationUpdateQueue::new(); + queue.push(AggregationUpdateJob::DataUpdate { + task_id, + update: AggregatedDataUpdate::no_longer_dirty_task(task_id), + }); CleanupOldEdgesOperation::RemoveEdges { task_id, outdated, - queue: AggregationUpdateQueue::new(), + queue, } .execute(&ctx); }