--- jsr166/src/jsr166e/StampedLock.java 2012/10/12 14:09:30 1.1 +++ jsr166/src/jsr166e/StampedLock.java 2012/10/12 16:22:40 1.2 @@ -673,7 +673,7 @@ public class StampedLock implements java */ public long tryConvertToOptimisticRead(long stamp) { long a = stamp & ABITS, m, s, next; - while (((s = U.getLongVolatile(this, STATE)) & + while (((s = U.getLongVolatile(this, STATE)) & SBITS) == (stamp & SBITS)) { if ((m = s & ABITS) == 0L) { if (a != 0L) @@ -784,7 +784,7 @@ public class StampedLock implements java return s; } } - else if ((ThreadLocalRandom.current().nextInt() & + else if ((ThreadLocalRandom.current().nextInt() & OVERFLOW_YIELD_RATE) == 0) Thread.yield(); return 0L; @@ -809,7 +809,7 @@ public class StampedLock implements java return next; } } - else if ((ThreadLocalRandom.current().nextInt() & + else if ((ThreadLocalRandom.current().nextInt() & OVERFLOW_YIELD_RATE) == 0) Thread.yield(); return 0L;