break_query_cycle in rustc_query_impl::job - Rust
Description: 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.

Skip to main content

## break_query_cycle

# Function break_query_cycle

Source

    pub fn break_query_cycle<'tcx>(job_map: QueryJobMap<'tcx>, registry: &Registry)

Expand description

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, but this only breaks one at a time so there will be multiple rounds through the deadlock handler if multiple cycles are present.