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

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

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

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines