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

Comparing jsr166/src/test/tck/PriorityBlockingQueueTest.java (file contents):
Revision 1.39 by jsr166, Thu Nov 18 20:21:53 2010 UTC vs.
Revision 1.40 by jsr166, Sun Nov 28 08:43:53 2010 UTC

# Line 427 | Line 427 | public class PriorityBlockingQueueTest e
427       * returning timeout status
428       */
429      public void testInterruptedTimedPoll() throws InterruptedException {
430 <        Thread t = new Thread(new CheckedRunnable() {
430 >        final BlockingQueue<Integer> q = populatedQueue(SIZE);
431 >        final CountDownLatch aboutToWait = new CountDownLatch(1);
432 >        Thread t = newStartedThread(new CheckedRunnable() {
433              public void realRun() throws InterruptedException {
432                PriorityBlockingQueue q = populatedQueue(SIZE);
434                  for (int i = 0; i < SIZE; ++i) {
435 <                    assertEquals(i, q.poll(SHORT_DELAY_MS, MILLISECONDS));
435 >                    long t0 = System.nanoTime();
436 >                    assertEquals(i, (int) q.poll(LONG_DELAY_MS, MILLISECONDS));
437 >                    assertTrue(millisElapsedSince(t0) < SMALL_DELAY_MS);
438                  }
439 +                long t0 = System.nanoTime();
440 +                aboutToWait.countDown();
441                  try {
442 <                    q.poll(SMALL_DELAY_MS, MILLISECONDS);
442 >                    q.poll(MEDIUM_DELAY_MS, MILLISECONDS);
443                      shouldThrow();
444 <                } catch (InterruptedException success) {}
444 >                } catch (InterruptedException success) {
445 >                    assertTrue(millisElapsedSince(t0) < MEDIUM_DELAY_MS);
446 >                }
447              }});
448  
449 <        t.start();
450 <        Thread.sleep(SHORT_DELAY_MS);
449 >        aboutToWait.await();
450 >        waitForThreadToEnterWaitState(t, SMALL_DELAY_MS);
451          t.interrupt();
452 <        t.join();
452 >        awaitTermination(t, MEDIUM_DELAY_MS);
453      }
454  
455      /**

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines