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

Comparing jsr166/src/test/tck/ReentrantLockTest.java (file contents):
Revision 1.59 by jsr166, Sun May 24 01:42:14 2015 UTC vs.
Revision 1.63 by jsr166, Fri Jul 3 05:48:30 2015 UTC

# Line 146 | Line 146 | public class ReentrantLockTest extends J
146      enum AwaitMethod { await, awaitTimed, awaitNanos, awaitUntil }
147  
148      /**
149 <     * Awaits condition using the specified AwaitMethod.
149 >     * Awaits condition "indefinitely" using the specified AwaitMethod.
150       */
151      void await(Condition c, AwaitMethod awaitMethod)
152              throws InterruptedException {
# Line 159 | Line 159 | public class ReentrantLockTest extends J
159              assertTrue(c.await(timeoutMillis, MILLISECONDS));
160              break;
161          case awaitNanos:
162 <            long nanosTimeout = MILLISECONDS.toNanos(timeoutMillis);
163 <            long nanosRemaining = c.awaitNanos(nanosTimeout);
164 <            assertTrue(nanosRemaining > 0);
162 >            long timeoutNanos = MILLISECONDS.toNanos(timeoutMillis);
163 >            long nanosRemaining = c.awaitNanos(timeoutNanos);
164 >            assertTrue(nanosRemaining > timeoutNanos / 2);
165 >            assertTrue(nanosRemaining <= timeoutNanos);
166              break;
167          case awaitUntil:
168              assertTrue(c.awaitUntil(delayedDate(timeoutMillis)));
# Line 564 | Line 565 | public class ReentrantLockTest extends J
565              final ReentrantLock lock = new ReentrantLock(fair);
566              final Condition c = lock.newCondition();
567              lock.lock();
568 <            long startTime = System.nanoTime();
569 <            long timeoutMillis = 10;
570 <            java.util.Date d = new java.util.Date();
571 <            assertFalse(c.awaitUntil(new java.util.Date(d.getTime() + timeoutMillis)));
572 <            assertTrue(millisElapsedSince(startTime) >= timeoutMillis);
568 >            // We shouldn't assume that nanoTime and currentTimeMillis
569 >            // use the same time source, so don't use nanoTime here.
570 >            java.util.Date delayedDate = delayedDate(timeoutMillis());
571 >            assertFalse(c.awaitUntil(delayedDate));
572 >            assertTrue(new java.util.Date().getTime() >= delayedDate.getTime());
573              lock.unlock();
574          } catch (InterruptedException fail) { threadUnexpectedException(fail); }
575      }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines