@@ -407,9 +407,10 @@ impl<B: BackingStorage> TurboTasksBackendInner<B> {
407407 tx : Option < & ' l B :: ReadTransaction < ' tx > > ,
408408 parent_task : TaskId ,
409409 child_task : TaskId ,
410+ is_immutable : bool ,
410411 turbo_tasks : & ' l dyn TurboTasksBackendApi < TurboTasksBackend < B > > ,
411412 ) {
412- operation:: ConnectChildOperation :: run ( parent_task, child_task, unsafe {
413+ operation:: ConnectChildOperation :: run ( parent_task, child_task, is_immutable , unsafe {
413414 self . execute_context_with_tx ( tx, turbo_tasks)
414415 } ) ;
415416 }
@@ -418,11 +419,13 @@ impl<B: BackingStorage> TurboTasksBackendInner<B> {
418419 & self ,
419420 parent_task : TaskId ,
420421 child_task : TaskId ,
422+ is_immutable : bool ,
421423 turbo_tasks : & dyn TurboTasksBackendApi < TurboTasksBackend < B > > ,
422424 ) {
423425 operation:: ConnectChildOperation :: run (
424426 parent_task,
425427 child_task,
428+ is_immutable,
426429 self . execute_context ( turbo_tasks) ,
427430 ) ;
428431 }
@@ -1135,11 +1138,12 @@ impl<B: BackingStorage> TurboTasksBackendInner<B> {
11351138 & self ,
11361139 task_type : CachedTaskType ,
11371140 parent_task : TaskId ,
1141+ is_immutable : bool ,
11381142 turbo_tasks : & dyn TurboTasksBackendApi < TurboTasksBackend < B > > ,
11391143 ) -> TaskId {
11401144 if let Some ( task_id) = self . task_cache . lookup_forward ( & task_type) {
11411145 self . track_cache_hit ( & task_type) ;
1142- self . connect_child ( parent_task, task_id, turbo_tasks) ;
1146+ self . connect_child ( parent_task, task_id, is_immutable , turbo_tasks) ;
11431147 return task_id;
11441148 }
11451149
@@ -1179,7 +1183,9 @@ impl<B: BackingStorage> TurboTasksBackendInner<B> {
11791183 } ;
11801184
11811185 // Safety: `tx` is a valid transaction from `self.backend.backing_storage`.
1182- unsafe { self . connect_child_with_tx ( tx. as_ref ( ) , parent_task, task_id, turbo_tasks) } ;
1186+ unsafe {
1187+ self . connect_child_with_tx ( tx. as_ref ( ) , parent_task, task_id, is_immutable, turbo_tasks)
1188+ } ;
11831189
11841190 task_id
11851191 }
@@ -1188,6 +1194,7 @@ impl<B: BackingStorage> TurboTasksBackendInner<B> {
11881194 & self ,
11891195 task_type : CachedTaskType ,
11901196 parent_task : TaskId ,
1197+ is_immutable : bool ,
11911198 turbo_tasks : & dyn TurboTasksBackendApi < TurboTasksBackend < B > > ,
11921199 ) -> TaskId {
11931200 if !parent_task. is_transient ( ) {
@@ -1199,7 +1206,7 @@ impl<B: BackingStorage> TurboTasksBackendInner<B> {
11991206 }
12001207 if let Some ( task_id) = self . task_cache . lookup_forward ( & task_type) {
12011208 self . track_cache_hit ( & task_type) ;
1202- self . connect_child ( parent_task, task_id, turbo_tasks) ;
1209+ self . connect_child ( parent_task, task_id, is_immutable , turbo_tasks) ;
12031210 return task_id;
12041211 }
12051212
@@ -1211,11 +1218,11 @@ impl<B: BackingStorage> TurboTasksBackendInner<B> {
12111218 unsafe {
12121219 self . transient_task_id_factory . reuse ( task_id) ;
12131220 }
1214- self . connect_child ( parent_task, existing_task_id, turbo_tasks) ;
1221+ self . connect_child ( parent_task, existing_task_id, is_immutable , turbo_tasks) ;
12151222 return existing_task_id;
12161223 }
12171224
1218- self . connect_child ( parent_task, task_id, turbo_tasks) ;
1225+ self . connect_child ( parent_task, task_id, is_immutable , turbo_tasks) ;
12191226
12201227 task_id
12211228 }
@@ -2249,7 +2256,7 @@ impl<B: BackingStorage> TurboTasksBackendInner<B> {
22492256 turbo_tasks : & dyn TurboTasksBackendApi < TurboTasksBackend < B > > ,
22502257 ) {
22512258 self . assert_not_persistent_calling_transient ( parent_task, task, None ) ;
2252- ConnectChildOperation :: run ( parent_task, task, self . execute_context ( turbo_tasks) ) ;
2259+ ConnectChildOperation :: run ( parent_task, task, false , self . execute_context ( turbo_tasks) ) ;
22532260 }
22542261
22552262 fn create_transient_task ( & self , task_type : TransientTaskType ) -> TaskId {
@@ -2584,20 +2591,22 @@ impl<B: BackingStorage> Backend for TurboTasksBackend<B> {
25842591 & self ,
25852592 task_type : CachedTaskType ,
25862593 parent_task : TaskId ,
2594+ is_immutable : bool ,
25872595 turbo_tasks : & dyn TurboTasksBackendApi < Self > ,
25882596 ) -> TaskId {
25892597 self . 0
2590- . get_or_create_persistent_task ( task_type, parent_task, turbo_tasks)
2598+ . get_or_create_persistent_task ( task_type, parent_task, is_immutable , turbo_tasks)
25912599 }
25922600
25932601 fn get_or_create_transient_task (
25942602 & self ,
25952603 task_type : CachedTaskType ,
25962604 parent_task : TaskId ,
2605+ is_immutable : bool ,
25972606 turbo_tasks : & dyn TurboTasksBackendApi < Self > ,
25982607 ) -> TaskId {
25992608 self . 0
2600- . get_or_create_transient_task ( task_type, parent_task, turbo_tasks)
2609+ . get_or_create_transient_task ( task_type, parent_task, is_immutable , turbo_tasks)
26012610 }
26022611
26032612 fn invalidate_task ( & self , task_id : TaskId , turbo_tasks : & dyn TurboTasksBackendApi < Self > ) {
0 commit comments