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

Comparing jsr166/src/test/tck/ForkJoinPool8Test.java (file contents):
Revision 1.16 by jsr166, Mon Sep 16 00:48:00 2013 UTC vs.
Revision 1.23 by jsr166, Sun Sep 22 01:42:44 2013 UTC

# Line 1485 | Line 1485 | public class ForkJoinPool8Test extends J
1485      }
1486  
1487      /**
1488 <     * awaitQuiescent by a worker is equivalent in effect to
1488 >     * awaitQuiescence by a worker is equivalent in effect to
1489       * ForkJoinTask.helpQuiesce()
1490       */
1491 <    public void testAwaitQuiescent1() throws Exception {
1491 >    public void testAwaitQuiescence1() throws Exception {
1492          final ForkJoinPool p = new ForkJoinPool();
1493          try {
1494              final long startTime = System.nanoTime();
# Line 1497 | Line 1497 | public class ForkJoinPool8Test extends J
1497                  protected void realCompute() {
1498                      FibAction f = new FibAction(8);
1499                      assertSame(f, f.fork());
1500 <                    boolean t = ForkJoinTask.getPool().awaitQuiescence(MEDIUM_DELAY_MS, TimeUnit.SECONDS);
1501 <                    assertTrue(t);
1500 >                    assertSame(p, ForkJoinTask.getPool());
1501 >                    boolean quiescent = p.awaitQuiescence(LONG_DELAY_MS, MILLISECONDS);
1502 >                    assertTrue(quiescent);
1503 >                    assertFalse(p.isQuiescent());
1504                      while (!f.isDone()) {
1503                        if (millisElapsedSince(startTime) > LONG_DELAY_MS)
1504                            threadFail("timed out");
1505                          assertFalse(p.getAsyncMode());
1506                          assertFalse(p.isShutdown());
1507                          assertFalse(p.isTerminating());
1508                          assertFalse(p.isTerminated());
1509                          Thread.yield();
1510                      }
1511 +                    assertTrue(millisElapsedSince(startTime) < LONG_DELAY_MS);
1512                      assertFalse(p.isQuiescent());
1513                      assertEquals(0, ForkJoinTask.getQueuedTaskCount());
1514 <                    try {
1514 <                        assertEquals(21, f.result);
1515 <                    } catch (Throwable fail) {
1516 <                        threadFail(fail.getMessage());
1517 <                    }
1514 >                    assertEquals(21, f.result);
1515                  }};
1516              p.execute(a);
1517              while (!a.isDone() || !p.isQuiescent()) {
1521                if (millisElapsedSince(startTime) > LONG_DELAY_MS)
1522                    throw new AssertionFailedError("timed out");
1518                  assertFalse(p.getAsyncMode());
1519                  assertFalse(p.isShutdown());
1520                  assertFalse(p.isTerminating());
1521                  assertFalse(p.isTerminated());
1522                  Thread.yield();
1523              }
1524 +            assertTrue(millisElapsedSince(startTime) < LONG_DELAY_MS);
1525              assertEquals(0, p.getQueuedTaskCount());
1526              assertFalse(p.getAsyncMode());
1527              assertEquals(0, p.getActiveThreadCount());
# Line 1541 | Line 1537 | public class ForkJoinPool8Test extends J
1537      }
1538  
1539      /**
1540 <     * awaitQuiescent returns when pool isQuiescent() or the indicated
1541 <     * timeout elapse
1540 >     * awaitQuiescence returns when pool isQuiescent() or the indicated
1541 >     * timeout elapsed
1542       */
1543 <    public void testAwaitQuiescent2() throws Exception {
1543 >    public void testAwaitQuiescence2() throws Exception {
1544          final ForkJoinPool p = new ForkJoinPool();
1545          try {
1546              assertTrue(p.isQuiescent());
1547              for (;;) {
1548                  final long startTime = System.nanoTime();
1549                  ForkJoinTask a = new CheckedRecursiveAction() {
1550 <                        protected void realCompute() {
1551 <                            FibAction f = new FibAction(8);
1552 <                            assertSame(f, f.fork());
1553 <                            ForkJoinTask.helpQuiesce();
1554 <                            while (!f.isDone()) {
1555 <                                if (millisElapsedSince(startTime) > LONG_DELAY_MS)
1556 <                                    threadFail("timed out");
1557 <                                assertFalse(p.getAsyncMode());
1558 <                                assertFalse(p.isShutdown());
1559 <                                assertFalse(p.isTerminating());
1564 <                                assertFalse(p.isTerminated());
1565 <                                Thread.yield();
1566 <                            }
1567 <                            assertEquals(0, ForkJoinTask.getQueuedTaskCount());
1568 <                            try {
1569 <                                assertEquals(21, f.result);
1570 <                            } catch (Throwable fail) { System.out.println("fail " + fail.getMessage()); }
1550 >                    protected void realCompute() {
1551 >                        FibAction f = new FibAction(8);
1552 >                        assertSame(f, f.fork());
1553 >                        ForkJoinTask.helpQuiesce();
1554 >                        while (!f.isDone()) {
1555 >                            assertFalse(p.getAsyncMode());
1556 >                            assertFalse(p.isShutdown());
1557 >                            assertFalse(p.isTerminating());
1558 >                            assertFalse(p.isTerminated());
1559 >                            Thread.yield();
1560                          }
1561 <                    };
1561 >                        assertTrue(millisElapsedSince(startTime) < LONG_DELAY_MS);
1562 >                        assertEquals(0, ForkJoinTask.getQueuedTaskCount());
1563 >                        assertEquals(21, f.result);
1564 >                    }};
1565                  p.execute(a);
1566                  if (a.isDone() || p.isQuiescent())
1567                      continue; // Already done so cannot test; retry
1568                  while (!p.awaitQuiescence(LONG_DELAY_MS, MILLISECONDS)) {
1577                    if (millisElapsedSince(startTime) > LONG_DELAY_MS)
1578                        threadFail("timed out");
1569                      assertFalse(p.getAsyncMode());
1570                      assertFalse(p.isShutdown());
1571                      assertFalse(p.isTerminating());
1572                      assertFalse(p.isTerminated());
1573                      Thread.yield();
1574                  }
1575 +                assertTrue(millisElapsedSince(startTime) < LONG_DELAY_MS);
1576                  assertTrue(p.isQuiescent());
1577                  assertTrue(a.isDone());
1578                  assertEquals(0, p.getQueuedTaskCount());

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines