예제 #1
0
 public static void SaveDeadlocks(DeadlockFinder deadlockFinder, string deadlocksDirectory)
 {
     Level level = deadlockFinder.Level;
     string deadlockFilename = GetDeadlockFilename(level, deadlocksDirectory);
     LevelSet deadlockLevelSet = DeadlockUtils.GetDeadlockLevelSet(level, deadlockFinder.Deadlocks);
     deadlockLevelSet.Name = "Calculated Deadlocks";
     deadlockLevelSet.SaveAs(deadlockFilename);
 }
 public ComparisonDeadlockFinder(Level level, DeadlockFinder finder1, DeadlockFinder finder2, bool detectMisses1, bool detectMisses2)
     : base(level)
 {
     this.finder1 = finder1;
     this.finder2 = finder2;
     this.detectMisses1 = detectMisses1;
     this.detectMisses2 = detectMisses2;
 }
예제 #3
0
 public static Array2D<bool> GetSimpleDeadlockMap(Level level)
 {
     DeadlockFinder deadlockFinder = new DeadlockFinder(level);
     return deadlockFinder.SimpleDeadlockMap;
 }
예제 #4
0
 protected void CreateDeadlockFinder()
 {
     deadlockFinder = null;
     if (calculateDeadlocks && deadlocksDirectory != null)
     {
         deadlockFinder = DeadlockUtils.LoadDeadlocks(level, deadlocksDirectory);
     }
     if (deadlockFinder == null)
     {
         deadlockFinder = DeadlockFinder.CreateInstance(level, calculateDeadlocks, hardCodedDeadlocks);
         deadlockFinder.CancelInfo = cancelInfo;
         deadlockFinder.FindDeadlocks();
     }
 }