Skip to content

Commit ab7415e

Browse files
committed
Remove session id from data entries and make them transient for the current session
1 parent c32963d commit ab7415e

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 {
@@ -2353,32 +2352,21 @@ impl<B: BackingStorage> TurboTasksBackendInner<B> {
23532352

23542353
// Grab the old dirty state
23552354
let old_dirtyness = get!(task, Dirty).cloned();
2356-
let (old_self_dirty, old_current_session_self_clean, old_clean_in_session) =
2357-
match old_dirtyness {
2358-
None => (false, false, None),
2359-
Some(Dirtyness::Dirty) => (true, false, None),
2360-
Some(Dirtyness::SessionDependent) => {
2361-
let clean_in_session = get!(task, CleanInSession).copied();
2362-
(
2363-
true,
2364-
clean_in_session == Some(self.session_id),
2365-
clean_in_session,
2366-
)
2367-
}
2368-
};
2355+
let (old_self_dirty, old_current_session_self_clean) = match old_dirtyness {
2356+
None => (false, false),
2357+
Some(Dirtyness::Dirty) => (true, false),
2358+
Some(Dirtyness::SessionDependent) => {
2359+
let clean_in_current_session = get!(task, CurrentSessionClean).is_some();
2360+
(true, clean_in_current_session)
2361+
}
2362+
};
23692363

23702364
// Compute the new dirty state
2371-
let (new_dirtyness, new_clean_in_session, new_self_dirty, new_current_session_self_clean) =
2372-
if session_dependent {
2373-
(
2374-
Some(Dirtyness::SessionDependent),
2375-
Some(self.session_id),
2376-
true,
2377-
true,
2378-
)
2379-
} else {
2380-
(None, None, false, false)
2381-
};
2365+
let (new_dirtyness, new_self_dirty, new_current_session_self_clean) = if session_dependent {
2366+
(Some(Dirtyness::SessionDependent), true, true)
2367+
} else {
2368+
(None, false, false)
2369+
};
23822370

23832371
// Update the dirty state
23842372
if old_dirtyness != new_dirtyness {
@@ -2388,11 +2376,11 @@ impl<B: BackingStorage> TurboTasksBackendInner<B> {
23882376
task.remove(&CachedDataItemKey::Dirty {});
23892377
}
23902378
}
2391-
if old_clean_in_session != new_clean_in_session {
2392-
if let Some(session_id) = new_clean_in_session {
2393-
task.insert(CachedDataItem::CleanInSession { value: session_id });
2394-
} else if old_clean_in_session.is_some() {
2395-
task.remove(&CachedDataItemKey::CleanInSession {});
2379+
if old_current_session_self_clean != new_current_session_self_clean {
2380+
if new_current_session_self_clean {
2381+
task.insert(CachedDataItem::CurrentSessionClean { value: () });
2382+
} else if old_current_session_self_clean {
2383+
task.remove(&CachedDataItemKey::CurrentSessionClean {});
23962384
}
23972385
}
23982386

@@ -2403,14 +2391,10 @@ impl<B: BackingStorage> TurboTasksBackendInner<B> {
24032391
let dirty_container_count = get!(task, AggregatedDirtyContainerCount)
24042392
.cloned()
24052393
.unwrap_or_default();
2406-
let current_session_clean_container_count = get!(
2407-
task,
2408-
AggregatedSessionDependentCleanContainerCount {
2409-
session_id: self.session_id
2410-
}
2411-
)
2412-
.copied()
2413-
.unwrap_or_default();
2394+
let current_session_clean_container_count =
2395+
get!(task, AggregatedCurrentSessionCleanContainerCount)
2396+
.copied()
2397+
.unwrap_or_default();
24142398
let result = ComputeDirtyAndCleanUpdate {
24152399
old_dirty_container_count: dirty_container_count,
24162400
new_dirty_container_count: dirty_container_count,
@@ -2901,8 +2885,8 @@ impl<B: BackingStorage> TurboTasksBackendInner<B> {
29012885

29022886
let mut ctx = self.execute_context(turbo_tasks);
29032887
let mut task = ctx.task(task_id, TaskDataCategory::All);
2904-
let is_dirty = task.is_dirty(self.session_id);
2905-
let has_dirty_containers = task.has_dirty_containers(self.session_id);
2888+
let is_dirty = task.is_dirty();
2889+
let has_dirty_containers = task.has_dirty_containers();
29062890
if is_dirty || has_dirty_containers {
29072891
if let Some(activeness_state) = get_mut!(task, Activeness) {
29082892
// We will finish the task, but it would be removed after the task is done
@@ -2992,7 +2976,7 @@ impl<B: BackingStorage> TurboTasksBackendInner<B> {
29922976
}
29932977

29942978
let is_dirty = get!(task, Dirty).is_some();
2995-
let has_dirty_container = task.has_dirty_containers(self.session_id);
2979+
let has_dirty_container = task.has_dirty_containers();
29962980
let should_be_in_upper = is_dirty || has_dirty_container;
29972981

29982982
let aggregation_number = get_aggregation_number(&task);

0 commit comments

Comments
 (0)