public void Run() { try { barrier.Await(); long i = iters; int y = 0; int succ = 0; while (i > 0) { for (int k = 0; k < CASLoops.innerPerOuter; ++k) { int x = obj.get_Renamed(); int z = y + LoopHelpers.compute6(x); if (obj.compareAndSet(x, z)) { ++succ; } y = LoopHelpers.compute7(z); } i -= CASLoops.innerPerOuter; } CASLoops.sum.AddDeltaAndReturnPreviousValue(obj.get_Renamed()); CASLoops.successes.AddDeltaAndReturnPreviousValue(succ); barrier.Await(); } catch (System.Exception ie) { return; } }
public void Run() { try { barrier.Await(); long iters = 0; int y = 0; int succ = 0; do { int i = CASLoops.loopsPerTimeCheck; while (i > 0) { for (int k = 0; k < CASLoops.innerPerOuter; ++k) { int x = obj.get_Renamed(); int z = y + LoopHelpers.compute6(x); if (obj.compareAndSet(x, z)) { ++succ; } y = LoopHelpers.compute7(z); } i -= CASLoops.innerPerOuter; } iters += CASLoops.loopsPerTimeCheck; }while ((System.DateTime.Now.Ticks - 621355968000000000) / 10000 < endTime); CASLoops.totalIters.AddDeltaAndReturnPreviousValue(iters); CASLoops.sum.AddDeltaAndReturnPreviousValue(obj.get_Renamed()); CASLoops.successes.AddDeltaAndReturnPreviousValue(succ); barrier.Await(); } catch (System.Exception ie) { return; } }