Skip to content

Commit 1984c76

Browse files
committed
Remove session id from data entries and make them transient for the current session
1 parent 4795a00 commit 1984c76

File tree

5 files changed

+107
-202
lines changed

5 files changed

+107
-202
lines changed

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

Lines changed: 31 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -567,10 +567,10 @@ impl<B: BackingStorage> TurboTasksBackendInner<B> {
567567
}
568568
}
569569

570-
let is_dirty = task.is_dirty(self.session_id);
570+
let is_dirty = task.is_dirty();
571571

572572
// Check the dirty count of the root node
573-
let has_dirty_containers = task.has_dirty_containers(self.session_id);
573+
let has_dirty_containers = task.has_dirty_containers();
574574
if has_dirty_containers || is_dirty {
575575
let activeness = get_mut!(task, Activeness);
576576
let mut task_ids_to_schedule: Vec<_> = Vec::new();
@@ -589,7 +589,7 @@ impl<B: BackingStorage> TurboTasksBackendInner<B> {
589589
.set_active_until_clean();
590590
if ctx.should_track_activeness() {
591591
// A newly added Activeness need to make sure to schedule the tasks
592-
task_ids_to_schedule = task.dirty_containers(self.session_id).collect();
592+
task_ids_to_schedule = task.dirty_containers().collect();
593593
task_ids_to_schedule.push(task_id);
594594
}
595595
get!(task, Activeness).unwrap()
@@ -613,7 +613,7 @@ impl<B: BackingStorage> TurboTasksBackendInner<B> {
613613
visited: &mut FxHashSet<TaskId>,
614614
) -> String {
615615
let task = ctx.task(task_id, TaskDataCategory::All);
616-
let is_dirty = task.is_dirty(ctx.session_id());
616+
let is_dirty = task.is_dirty();
617617
let in_progress =
618618
get!(task, InProgress).map_or("not in progress", |p| match p {
619619
InProgressState::InProgress(_) => "in progress",
@@ -634,7 +634,7 @@ impl<B: BackingStorage> TurboTasksBackendInner<B> {
634634
};
635635

636636
// Check the dirty count of the root node
637-
let has_dirty_containers = task.has_dirty_containers(ctx.session_id());
637+
let has_dirty_containers = task.has_dirty_containers();
638638

639639
let task_description = ctx.get_task_description(task_id);
640640
let is_dirty_label = if is_dirty { ", dirty" } else { "" };
@@ -653,8 +653,7 @@ impl<B: BackingStorage> TurboTasksBackendInner<B> {
653653
{in_progress}, \
654654
{activeness}{is_dirty_label}{has_dirty_containers_label})",
655655
);
656-
let children: Vec<_> =
657-
task.dirty_containers_with_count(ctx.session_id()).collect();
656+
let children: Vec<_> = task.dirty_containers_with_count().collect();
658657
drop(task);
659658

660659
if missing_upper {
@@ -2365,32 +2364,21 @@ impl<B: BackingStorage> TurboTasksBackendInner<B> {
23652364

23662365
// Grab the old dirty state
23672366
let old_dirtyness = get!(task, Dirty).cloned();
2368-
let (old_self_dirty, old_current_session_self_clean, old_clean_in_session) =
2369-
match old_dirtyness {
2370-
None => (false, false, None),
2371-
Some(Dirtyness::Dirty) => (true, false, None),
2372-
Some(Dirtyness::SessionDependent) => {
2373-
let clean_in_session = get!(task, CleanInSession).copied();
2374-
(
2375-
true,
2376-
clean_in_session == Some(self.session_id),
2377-
clean_in_session,
2378-
)
2379-
}
2380-
};
2367+
let (old_self_dirty, old_current_session_self_clean) = match old_dirtyness {
2368+
None => (false, false),
2369+
Some(Dirtyness::Dirty) => (true, false),
2370+
Some(Dirtyness::SessionDependent) => {
2371+
let clean_in_current_session = get!(task, CurrentSessionClean).is_some();
2372+
(true, clean_in_current_session)
2373+
}
2374+
};
23812375

23822376
// Compute the new dirty state
2383-
let (new_dirtyness, new_clean_in_session, new_self_dirty, new_current_session_self_clean) =
2384-
if session_dependent {
2385-
(
2386-
Some(Dirtyness::SessionDependent),
2387-
Some(self.session_id),
2388-
true,
2389-
true,
2390-
)
2391-
} else {
2392-
(None, None, false, false)
2393-
};
2377+
let (new_dirtyness, new_self_dirty, new_current_session_self_clean) = if session_dependent {
2378+
(Some(Dirtyness::SessionDependent), true, true)
2379+
} else {
2380+
(None, false, false)
2381+
};
23942382

23952383
// Update the dirty state
23962384
if old_dirtyness != new_dirtyness {
@@ -2400,11 +2388,11 @@ impl<B: BackingStorage> TurboTasksBackendInner<B> {
24002388
task.remove(&CachedDataItemKey::Dirty {});
24012389
}
24022390
}
2403-
if old_clean_in_session != new_clean_in_session {
2404-
if let Some(session_id) = new_clean_in_session {
2405-
task.insert(CachedDataItem::CleanInSession { value: session_id });
2406-
} else if old_clean_in_session.is_some() {
2407-
task.remove(&CachedDataItemKey::CleanInSession {});
2391+
if old_current_session_self_clean != new_current_session_self_clean {
2392+
if new_current_session_self_clean {
2393+
task.insert(CachedDataItem::CurrentSessionClean { value: () });
2394+
} else if old_current_session_self_clean {
2395+
task.remove(&CachedDataItemKey::CurrentSessionClean {});
24082396
}
24092397
}
24102398

@@ -2415,14 +2403,10 @@ impl<B: BackingStorage> TurboTasksBackendInner<B> {
24152403
let dirty_container_count = get!(task, AggregatedDirtyContainerCount)
24162404
.cloned()
24172405
.unwrap_or_default();
2418-
let current_session_clean_container_count = get!(
2419-
task,
2420-
AggregatedSessionDependentCleanContainerCount {
2421-
session_id: self.session_id
2422-
}
2423-
)
2424-
.copied()
2425-
.unwrap_or_default();
2406+
let current_session_clean_container_count =
2407+
get!(task, AggregatedCurrentSessionCleanContainerCount)
2408+
.copied()
2409+
.unwrap_or_default();
24262410
let result = ComputeDirtyAndCleanUpdate {
24272411
old_dirty_container_count: dirty_container_count,
24282412
new_dirty_container_count: dirty_container_count,
@@ -2914,8 +2898,8 @@ impl<B: BackingStorage> TurboTasksBackendInner<B> {
29142898

29152899
let mut ctx = self.execute_context(turbo_tasks);
29162900
let mut task = ctx.task(task_id, TaskDataCategory::All);
2917-
let is_dirty = task.is_dirty(self.session_id);
2918-
let has_dirty_containers = task.has_dirty_containers(self.session_id);
2901+
let is_dirty = task.is_dirty();
2902+
let has_dirty_containers = task.has_dirty_containers();
29192903
if is_dirty || has_dirty_containers {
29202904
if let Some(activeness_state) = get_mut!(task, Activeness) {
29212905
// We will finish the task, but it would be removed after the task is done
@@ -3005,7 +2989,7 @@ impl<B: BackingStorage> TurboTasksBackendInner<B> {
30052989
}
30062990

30072991
let is_dirty = get!(task, Dirty).is_some();
3008-
let has_dirty_container = task.has_dirty_containers(self.session_id);
2992+
let has_dirty_container = task.has_dirty_containers();
30092993
let should_be_in_upper = is_dirty || has_dirty_container;
30102994

30112995
let aggregation_number = get_aggregation_number(&task);

0 commit comments

Comments
 (0)