Skip to content

Commit 9dcf4cf

Browse files
committed
Turbopack: assign a high aggregation number to session dependent tasks
1 parent 0a2de64 commit 9dcf4cf

File tree

1 file changed

+18
-2
lines changed
  • turbopack/crates/turbo-tasks-backend/src/backend

1 file changed

+18
-2
lines changed

turbopack/crates/turbo-tasks-backend/src/backend/mod.rs

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2031,15 +2031,31 @@ impl<B: BackingStorage> TurboTasksBackendInner<B> {
20312031

20322032
fn mark_own_task_as_session_dependent(
20332033
&self,
2034-
task: TaskId,
2034+
task_id: TaskId,
20352035
turbo_tasks: &dyn TurboTasksBackendApi<TurboTasksBackend<B>>,
20362036
) {
20372037
if !self.should_track_dependencies() {
20382038
// Without dependency tracking we don't need session dependent tasks
20392039
return;
20402040
}
2041+
const SESSION_DEPENDENT_AGGREGATION_NUMBER: u32 = u32::MAX >> 2;
20412042
let mut ctx = self.execute_context(turbo_tasks);
2042-
let mut task = ctx.task(task, TaskDataCategory::Data);
2043+
let mut task = ctx.task(task_id, TaskDataCategory::Meta);
2044+
let aggregation_number = get_aggregation_number(&task);
2045+
if aggregation_number < SESSION_DEPENDENT_AGGREGATION_NUMBER {
2046+
drop(task);
2047+
// We want to use a high aggregation number to avoid large aggregation chains for
2048+
// session dependent tasks (which change on every run)
2049+
AggregationUpdateQueue::run(
2050+
AggregationUpdateJob::UpdateAggregationNumber {
2051+
task_id,
2052+
base_aggregation_number: SESSION_DEPENDENT_AGGREGATION_NUMBER,
2053+
distance: None,
2054+
},
2055+
&mut ctx,
2056+
);
2057+
task = ctx.task(task_id, TaskDataCategory::Meta);
2058+
}
20432059
if let Some(InProgressState::InProgress(box InProgressStateInner {
20442060
session_dependent,
20452061
..

0 commit comments

Comments
 (0)