--- jsr166/src/test/tck/AbstractQueuedLongSynchronizerTest.java 2018/01/23 20:44:11 1.44 +++ jsr166/src/test/tck/AbstractQueuedLongSynchronizerTest.java 2019/08/13 03:39:46 1.47 @@ -224,8 +224,8 @@ public class AbstractQueuedLongSynchroni assertTrue(c.await(timeoutMillis, MILLISECONDS)); break; case awaitNanos: - long nanosTimeout = MILLISECONDS.toNanos(timeoutMillis); - long nanosRemaining = c.awaitNanos(nanosTimeout); + long timeoutNanos = MILLISECONDS.toNanos(timeoutMillis); + long nanosRemaining = c.awaitNanos(timeoutNanos); assertTrue(nanosRemaining > 0); break; case awaitUntil: @@ -252,8 +252,8 @@ public class AbstractQueuedLongSynchroni break; case awaitNanos: startTime = System.nanoTime(); - long nanosTimeout = MILLISECONDS.toNanos(timeoutMillis); - long nanosRemaining = c.awaitNanos(nanosTimeout); + long timeoutNanos = MILLISECONDS.toNanos(timeoutMillis); + long nanosRemaining = c.awaitNanos(timeoutNanos); assertTrue(nanosRemaining <= 0); assertTrue(nanosRemaining > -MILLISECONDS.toNanos(LONG_DELAY_MS)); assertTrue(millisElapsedSince(startTime) >= timeoutMillis); @@ -1265,7 +1265,7 @@ public class AbstractQueuedLongSynchroni // A synchronizer only offering a choice of failure modes class Sync extends AbstractQueuedLongSynchronizer { - boolean pleaseThrow; + volatile boolean pleaseThrow; @Override protected boolean tryAcquire(long ignored) { if (pleaseThrow) throw ex; return false; @@ -1287,7 +1287,7 @@ public class AbstractQueuedLongSynchroni final Thread thread = newStartedThread(new CheckedRunnable() { public void realRun() { try { - if (ThreadLocalRandom.current().nextBoolean()) + if (randomBoolean()) s.acquire(1); else s.acquireShared(1);