internal static long runLocked(int n, long iters) { LoopHelpers.BarrierTimer timer = new LoopHelpers.BarrierTimer(); CyclicBarrier b = new CyclicBarrier(n + 1, timer); LockedInteger a = new LockedInteger(); for (int j = 0; j < n; ++j) { new SupportClass.ThreadClass(new System.Threading.ThreadStart(new LockedLoop(iters, a, b).Run)).Start(); } b.Await(); b.Await(); if (sum.Value == 0) { System.Console.Out.Write(" "); } return(timer.Time); }
internal static long runVolatile(int n, long iters) { LoopHelpers.BarrierTimer timer = new LoopHelpers.BarrierTimer(); CyclicBarrier b = new CyclicBarrier(n + 1, timer); VolatileInteger a = new VolatileInteger(); for (int j = 0; j < n; ++j) new SupportClass.ThreadClass(new System.Threading.ThreadStart(new VolatileLoop(iters, a, b).Run)).Start(); b.Await(); b.Await(); if (sum.Value == 0) System.Console.Out.Write(" "); return timer.Time; }