@@ -27,8 +27,8 @@ use tokio::time::{Duration, Instant};
2727use tracing:: { Span , trace_span} ;
2828use turbo_tasks:: {
2929 CellId , FxDashMap , FxIndexMap , KeyValuePair , RawVc , ReadCellOptions , ReadConsistency ,
30- ReadOutputOptions , ReadTracking , SessionId , TRANSIENT_TASK_BIT , TaskExecutionReason , TaskId ,
31- TraitTypeId , TurboTasksBackendApi , ValueTypeId ,
30+ ReadOutputOptions , ReadTracking , TRANSIENT_TASK_BIT , TaskExecutionReason , TaskId , TraitTypeId ,
31+ TurboTasksBackendApi , ValueTypeId ,
3232 backend:: {
3333 Backend , CachedTaskType , CellContent , TaskExecutionSpec , TransientTaskRoot ,
3434 TransientTaskType , TurboTasksExecutionError , TypedCellContent , VerificationMode ,
@@ -180,7 +180,6 @@ struct TurboTasksBackendInner<B: BackingStorage> {
180180 options : BackendOptions ,
181181
182182 start_time : Instant ,
183- session_id : SessionId ,
184183
185184 persisted_task_id_factory : IdFactoryWithReuse < TaskId > ,
186185 transient_task_id_factory : IdFactoryWithReuse < TaskId > ,
@@ -254,9 +253,6 @@ impl<B: BackingStorage> TurboTasksBackendInner<B> {
254253 Self {
255254 options,
256255 start_time : Instant :: now ( ) ,
257- session_id : backing_storage
258- . next_session_id ( )
259- . expect ( "Failed get session id" ) ,
260256 persisted_task_id_factory : IdFactoryWithReuse :: new (
261257 next_task_id,
262258 TaskId :: try_from ( TRANSIENT_TASK_BIT - 1 ) . unwrap ( ) ,
@@ -295,10 +291,6 @@ impl<B: BackingStorage> TurboTasksBackendInner<B> {
295291 ExecuteContextImpl :: new ( self , turbo_tasks)
296292 }
297293
298- fn session_id ( & self ) -> SessionId {
299- self . session_id
300- }
301-
302294 /// # Safety
303295 ///
304296 /// `tx` must be a transaction from this TurboTasksBackendInner instance.
@@ -567,10 +559,10 @@ impl<B: BackingStorage> TurboTasksBackendInner<B> {
567559 }
568560 }
569561
570- let is_dirty = task. is_dirty ( self . session_id ) ;
562+ let is_dirty = task. is_dirty ( ) ;
571563
572564 // Check the dirty count of the root node
573- let has_dirty_containers = task. has_dirty_containers ( self . session_id ) ;
565+ let has_dirty_containers = task. has_dirty_containers ( ) ;
574566 if has_dirty_containers || is_dirty {
575567 let activeness = get_mut ! ( task, Activeness ) ;
576568 let mut task_ids_to_schedule: Vec < _ > = Vec :: new ( ) ;
@@ -589,7 +581,7 @@ impl<B: BackingStorage> TurboTasksBackendInner<B> {
589581 . set_active_until_clean ( ) ;
590582 if ctx. should_track_activeness ( ) {
591583 // A newly added Activeness need to make sure to schedule the tasks
592- task_ids_to_schedule = task. dirty_containers ( self . session_id ) . collect ( ) ;
584+ task_ids_to_schedule = task. dirty_containers ( ) . collect ( ) ;
593585 task_ids_to_schedule. push ( task_id) ;
594586 }
595587 get ! ( task, Activeness ) . unwrap ( )
@@ -613,7 +605,7 @@ impl<B: BackingStorage> TurboTasksBackendInner<B> {
613605 visited : & mut FxHashSet < TaskId > ,
614606 ) -> String {
615607 let task = ctx. task ( task_id, TaskDataCategory :: All ) ;
616- let is_dirty = task. is_dirty ( ctx . session_id ( ) ) ;
608+ let is_dirty = task. is_dirty ( ) ;
617609 let in_progress =
618610 get ! ( task, InProgress ) . map_or ( "not in progress" , |p| match p {
619611 InProgressState :: InProgress ( _) => "in progress" ,
@@ -634,7 +626,7 @@ impl<B: BackingStorage> TurboTasksBackendInner<B> {
634626 } ;
635627
636628 // Check the dirty count of the root node
637- let has_dirty_containers = task. has_dirty_containers ( ctx . session_id ( ) ) ;
629+ let has_dirty_containers = task. has_dirty_containers ( ) ;
638630
639631 let task_description = ctx. get_task_description ( task_id) ;
640632 let is_dirty_label = if is_dirty { ", dirty" } else { "" } ;
@@ -653,8 +645,7 @@ impl<B: BackingStorage> TurboTasksBackendInner<B> {
653645 {in_progress}, \
654646 {activeness}{is_dirty_label}{has_dirty_containers_label})",
655647 ) ;
656- let children: Vec < _ > =
657- task. dirty_containers_with_count ( ctx. session_id ( ) ) . collect ( ) ;
648+ let children: Vec < _ > = task. dirty_containers_with_count ( ) . collect ( ) ;
658649 drop ( task) ;
659650
660651 if missing_upper {
@@ -1197,7 +1188,6 @@ impl<B: BackingStorage> TurboTasksBackendInner<B> {
11971188 let _span = tracing:: info_span!( parent: parent_span, "persist" , reason = reason) . entered ( ) ;
11981189 {
11991190 if let Err ( err) = self . backing_storage . save_snapshot (
1200- self . session_id ,
12011191 suspended_operations,
12021192 persisted_task_cache_log,
12031193 task_snapshots,
@@ -2365,32 +2355,21 @@ impl<B: BackingStorage> TurboTasksBackendInner<B> {
23652355
23662356 // Grab the old dirty state
23672357 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- } ;
2358+ let ( old_self_dirty, old_current_session_self_clean) = match old_dirtyness {
2359+ None => ( false , false ) ,
2360+ Some ( Dirtyness :: Dirty ) => ( true , false ) ,
2361+ Some ( Dirtyness :: SessionDependent ) => {
2362+ let clean_in_current_session = get ! ( task, CurrentSessionClean ) . is_some ( ) ;
2363+ ( true , clean_in_current_session)
2364+ }
2365+ } ;
23812366
23822367 // 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- } ;
2368+ let ( new_dirtyness, new_self_dirty, new_current_session_self_clean) = if session_dependent {
2369+ ( Some ( Dirtyness :: SessionDependent ) , true , true )
2370+ } else {
2371+ ( None , false , false )
2372+ } ;
23942373
23952374 // Update the dirty state
23962375 if old_dirtyness != new_dirtyness {
@@ -2400,11 +2379,11 @@ impl<B: BackingStorage> TurboTasksBackendInner<B> {
24002379 task. remove ( & CachedDataItemKey :: Dirty { } ) ;
24012380 }
24022381 }
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 { } ) ;
2382+ if old_current_session_self_clean != new_current_session_self_clean {
2383+ if new_current_session_self_clean {
2384+ task. insert ( CachedDataItem :: CurrentSessionClean { value : ( ) } ) ;
2385+ } else if old_current_session_self_clean {
2386+ task. remove ( & CachedDataItemKey :: CurrentSessionClean { } ) ;
24082387 }
24092388 }
24102389
@@ -2415,14 +2394,10 @@ impl<B: BackingStorage> TurboTasksBackendInner<B> {
24152394 let dirty_container_count = get ! ( task, AggregatedDirtyContainerCount )
24162395 . cloned ( )
24172396 . 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 ( ) ;
2397+ let current_session_clean_container_count =
2398+ get ! ( task, AggregatedCurrentSessionCleanContainerCount )
2399+ . copied ( )
2400+ . unwrap_or_default ( ) ;
24262401 let result = ComputeDirtyAndCleanUpdate {
24272402 old_dirty_container_count : dirty_container_count,
24282403 new_dirty_container_count : dirty_container_count,
@@ -2914,8 +2889,8 @@ impl<B: BackingStorage> TurboTasksBackendInner<B> {
29142889
29152890 let mut ctx = self . execute_context ( turbo_tasks) ;
29162891 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 ) ;
2892+ let is_dirty = task. is_dirty ( ) ;
2893+ let has_dirty_containers = task. has_dirty_containers ( ) ;
29192894 if is_dirty || has_dirty_containers {
29202895 if let Some ( activeness_state) = get_mut ! ( task, Activeness ) {
29212896 // We will finish the task, but it would be removed after the task is done
@@ -3005,7 +2980,7 @@ impl<B: BackingStorage> TurboTasksBackendInner<B> {
30052980 }
30062981
30072982 let is_dirty = get ! ( task, Dirty ) . is_some ( ) ;
3008- let has_dirty_container = task. has_dirty_containers ( self . session_id ) ;
2983+ let has_dirty_container = task. has_dirty_containers ( ) ;
30092984 let should_be_in_upper = is_dirty || has_dirty_container;
30102985
30112986 let aggregation_number = get_aggregation_number ( & task) ;
0 commit comments