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

Comparing jsr166/src/test/tck/AbstractQueuedLongSynchronizerTest.java (file contents):
Revision 1.26 by jsr166, Fri Jan 18 04:23:28 2013 UTC vs.
Revision 1.27 by jsr166, Thu May 2 18:01:09 2013 UTC

# Line 1187 | Line 1187 | public class AbstractQueuedLongSynchroni
1187       */
1188      public void testTryAcquireSharedNanos_Timeout() {
1189          final BooleanLatch l = new BooleanLatch();
1190 +        final BooleanLatch observedQueued = new BooleanLatch();
1191 +        final long timeoutMillis = timeoutMillis();
1192          Thread t = newStartedThread(new CheckedRunnable() {
1193              public void realRun() throws InterruptedException {
1194                  assertFalse(l.isSignalled());
1195 <                long startTime = System.nanoTime();
1196 <                long nanos = MILLISECONDS.toNanos(timeoutMillis());
1197 <                assertFalse(l.tryAcquireSharedNanos(0, nanos));
1198 <                assertTrue(millisElapsedSince(startTime) >= timeoutMillis());
1195 >                for (long millis = timeoutMillis();
1196 >                     !observedQueued.isSignalled();
1197 >                     millis *= 2) {
1198 >                    long nanos = MILLISECONDS.toNanos(millis);
1199 >                    long startTime = System.nanoTime();
1200 >                    assertFalse(l.tryAcquireSharedNanos(0, nanos));
1201 >                    assertTrue(millisElapsedSince(startTime) >= millis);
1202 >                }
1203                  assertFalse(l.isSignalled());
1204              }});
1205  
1206          waitForQueuedThread(l, t);
1207 +        observedQueued.releaseShared(0);
1208          assertFalse(l.isSignalled());
1209          awaitTermination(t);
1210          assertFalse(l.isSignalled());

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines