| 317 | } |
| 318 | |
| 319 | void |
| 320 | ExecSystem::_InvalidateMetadataValues( |
| 321 | TfSpan<const std::pair<SdfPath, TfToken>> invalidObjects) |
| 322 | { |
| 323 | TRACE_FUNCTION(); |
| 324 | |
| 325 | const Exec_MetadataInvalidationResult invalidationResult = |
| 326 | _program->InvalidateMetadataValues(invalidObjects); |
| 327 | |
| 328 | const EfTimeInterval fullTimeInterval = EfTimeInterval::GetFullInterval(); |
| 329 | |
| 330 | // Invalidate the executor and send request invalidation. |
| 331 | WorkWithScopedDispatcher( |
| 332 | [&runtime = _runtime, &invalidationResult, |
| 333 | &requestTracker = _requestTracker, |
| 334 | &fullTimeInterval] |
| 335 | (WorkDispatcher &dispatcher){ |
| 336 | // Invalidate values in the page cache. |
| 337 | dispatcher.Run([&](){ |
| 338 | runtime->InvalidatePageCache( |
| 339 | invalidationResult.invalidationRequest, |
| 340 | fullTimeInterval); |
| 341 | }); |
| 342 | |
| 343 | // Notify all the requests of computed value invalidation. Not all the |
| 344 | // requests will contain all the invalid leaf nodes, and the request |
| 345 | // impls are responsible for filtering the provided information. |
| 346 | requestTracker->DidInvalidateComputedValues(invalidationResult); |
| 347 | }); |
| 348 | } |
| 349 | |
| 350 | void |
| 351 | ExecSystem::_InvalidateUnknownValues() |
no test coverage detected