Modules§
- caches 🔒
- config 🔒
- Query configuration and description traits.
- job 🔒
- plumbing 🔒
- The implementation of the query system itself. This defines the macros that generate the actual methods on tcx which find and execute the provider, manage the caches, and so forth.
Structs§
- Cycle
Error - DefId
Cache - Default
Cache - Query
Info - Represents a span and a query key.
- Query
Job - Represents an active query job.
- Query
JobId - A value uniquely identifying an active query job.
- Query
JobInfo - Query
Side Effects - Tracks ‘side effects’ for a particular query. This struct is saved to disk along with the query result, and loaded from disk if we mark the query as green. This allows us to ‘replay’ changes to global state that would otherwise only occur if we actually executed the query method.
- Query
Stack Frame - Description of a frame in the query stack.
- Query
State - Single
Cache - VecCache
Enums§
Traits§
Functions§
- break_
query_ cycles - Detects query cycles by using depth first search over all active query jobs. If a query cycle is found it will break the cycle by finding an edge which uses a query latch and then resuming that waiter. There may be multiple cycles involved in a deadlock, so this searches all active queries for cycles before finally resuming all the waiters at once.
- force_
query - get_
query_ incr - get_
query_ non_ incr - print_
query_ stack - report_
cycle - try_
get_ cached - Checks if the query is already computed and in the cache. It returns the shard index and a lock guard to the shard, which will be used if the query is not in the cache and we need to compute it.