public void executeVerification(VerifyAsset verifyAsset, SpecificationBase specbase) { //initialize CSP module with CSP Code PATUtil util = new PATUtil(); Stopwatch sw = new Stopwatch(); sw.Start(); // run assertions and gather results ConcurrentBag <DiagnosisResult> results = new ConcurrentBag <DiagnosisResult>(); foreach (String assertionName in verifyAsset.deadloopCheck) { results.Add(util.executeAssertion(specbase, assertionName)); } foreach (String assertionName in verifyAsset.livelockCheck) { results.Add(util.executeAssertion(specbase, assertionName)); } sw.Stop(); VerifyResult verResult = new VerifyResult(); verResult.elapseTime = sw.ElapsedMilliseconds; verResult.diagnosisList = results; System.Diagnostics.Debug.WriteLine("Total Result" + results.Count); T stuffReturned = (T)Convert.ChangeType(verResult, typeof(T)); callback(stuffReturned); }
public ThreadedVerificationExecuter(CallBackDelegate callback, VerifyAsset asset, SpecificationBase specbase) { this.callback = callback; t = new Thread(() => executeVerification(asset, specbase)); }