public RenderPipelineTests(IAssert assert, IThreadControl threadControl, ITestAttachment testAttachment) { _assert = assert; _testAttachment = testAttachment; threadControl.RequireTestsToRunOnMainThread(); }
protected BranchedJob(IThreadControl parent) { this.threadControl = parent; this.threadControl.Add(this); }
protected ParallelJob(IThreadControl tcParent) : this() { this.ThreadControl = tcParent; }
public void PerformOptimization(IJob job, IThreadControlOptimization tcOptimization, IThreadControl tcParent) { foreach (Type wuType in job.WorkUnitTypes) { WorkUnitRequirements requirements = job.GetWorkUnitRequirements(wuType); if (wuType == typeof(ICPUWorkUnit)) { /* TODO: perform *real* CPU-level load balancing */ IWorkUnit selectedThread = tcParent.WorkUnits.FreeMost(wuType); float sureness = 0.75f; tcOptimization.Assign(selectedThread, job, sureness); } else { /* assign to "default" with 0 sureness level. * if a better optimizer will be smarter, it will override * our "default" assign with a higher sureness number */ tcOptimization.Assign(tcParent.WorkUnits.Default(wuType), job, 0); } } }