public static IEnumerable <IIssue> DetectDeadLocks(ClrRuntime runtime, Report report)
        {
            var blockedThreads = runtime.Heap
                                 .EnumerateBlockingObjects()
                                 .Where(o => o.Owner != null && o.Waiters.Count > 0)
                                 .Select(o => o.Owner);


            var lockCycles = Graphs
                             .FindCycles(
                blockedThreads,
                thread => thread.BlockingObjects,
                obj => obj.Owner,
                new ClrThreadEqualityComparer());

            return(lockCycles.Select(c => new DeadLockIssue(c)));
        }