ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/jsr166/jsr166/src/test/loops/LockLoops.java
(Generate patch)

Comparing jsr166/src/test/loops/LockLoops.java (file contents):
Revision 1.13 by jsr166, Wed Jun 8 20:11:01 2016 UTC vs.
Revision 1.14 by jsr166, Wed Jun 8 20:42:12 2016 UTC

# Line 139 | Line 139 | public final class LockLoops {
139              Thread.sleep(10);
140  
141              if (print)
142 +                System.out.print("StampedLockOptRead");
143 +            new StampedLockOptimisticReadLoop().test(v, nthreads, iters);
144 +            Thread.sleep(10);
145 +
146 +            if (print)
147                  System.out.print("StampedLockReadWrite");
148 <            new StampedLockReadLoop().test(v, nthreads, iters);
148 >            new StampedLockReadWriteLoop().test(v, nthreads, iters);
149              Thread.sleep(10);
150          }
151      }
# Line 427 | Line 432 | public final class LockLoops {
432                  sum += LoopHelpers.compute2(v);
433              }
434              return sum;
435 +        }
436 +    }
437 +
438 +    private static class StampedLockOptimisticReadLoop extends LockLoop {
439 +        private final StampedLock lock = new StampedLock();
440 +        final int loop(int n) {
441 +            int sum = 0;
442 +            while (n-- > 0) {
443 +                long stamp;
444 +                do {
445 +                    stamp = lock.tryOptimisticRead();
446 +                    v = LoopHelpers.compute1(v);
447 +                } while (!lock.validate(stamp));
448 +                sum += LoopHelpers.compute2(v);
449 +            }
450 +            return sum;
451          }
452      }
453  

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines