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.