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.24 by jsr166, Tue Sep 24 15:49:55 2013 UTC vs.
Revision 1.27 by jsr166, Sat Nov 1 19:18:12 2014 UTC

# Line 1541 | Line 1541 | public class ForkJoinPool8Test extends J
1541       * timeout elapsed
1542       */
1543      public void testAwaitQuiescence2() throws Exception {
1544 +        /**
1545 +         * """It is possible to disable or limit the use of threads in the
1546 +         * common pool by setting the parallelism property to zero. However
1547 +         * doing so may cause unjoined tasks to never be executed."""
1548 +         */
1549 +        if ("0".equals(System.getProperty(
1550 +             "java.util.concurrent.ForkJoinPool.common.parallelism")))
1551 +            return;
1552          final ForkJoinPool p = new ForkJoinPool();
1553          try {
1554              assertTrue(p.isQuiescent());
1555 <            for (;;) {
1556 <                final long startTime = System.nanoTime();
1557 <                ForkJoinTask a = new CheckedRecursiveAction() {
1558 <                    protected void realCompute() {
1559 <                        FibAction f = new FibAction(8);
1560 <                        assertSame(f, f.fork());
1561 <                        ForkJoinTask.helpQuiesce();
1562 <                        while (!f.isDone()) {
1563 <                            assertFalse(p.getAsyncMode());
1564 <                            assertFalse(p.isShutdown());
1565 <                            assertFalse(p.isTerminating());
1566 <                            assertFalse(p.isTerminated());
1567 <                            Thread.yield();
1568 <                        }
1569 <                        assertTrue(millisElapsedSince(startTime) < LONG_DELAY_MS);
1570 <                        assertEquals(0, ForkJoinTask.getQueuedTaskCount());
1571 <                        assertEquals(21, f.result);
1572 <                    }};
1573 <                p.execute(a);
1574 <                if (a.isDone() || p.isQuiescent())
1575 <                    continue; // Already done so cannot test; retry
1576 <                assertTrue(p.awaitQuiescence(LONG_DELAY_MS, MILLISECONDS));
1577 <                assertTrue(millisElapsedSince(startTime) < LONG_DELAY_MS);
1578 <                assertTrue(p.isQuiescent());
1579 <                assertTrue(a.isDone());
1580 <                assertEquals(0, p.getQueuedTaskCount());
1581 <                assertFalse(p.getAsyncMode());
1582 <                assertEquals(0, p.getActiveThreadCount());
1583 <                assertEquals(0, p.getQueuedTaskCount());
1584 <                assertEquals(0, p.getQueuedSubmissionCount());
1585 <                assertFalse(p.hasQueuedSubmissions());
1578 <                assertFalse(p.isShutdown());
1579 <                assertFalse(p.isTerminating());
1580 <                assertFalse(p.isTerminated());
1581 <                break;
1582 <            }
1555 >            final long startTime = System.nanoTime();
1556 >            ForkJoinTask a = new CheckedRecursiveAction() {
1557 >                protected void realCompute() {
1558 >                    FibAction f = new FibAction(8);
1559 >                    assertSame(f, f.fork());
1560 >                    while (!f.isDone()
1561 >                           && millisElapsedSince(startTime) < LONG_DELAY_MS) {
1562 >                        assertFalse(p.getAsyncMode());
1563 >                        assertFalse(p.isShutdown());
1564 >                        assertFalse(p.isTerminating());
1565 >                        assertFalse(p.isTerminated());
1566 >                        Thread.yield();
1567 >                    }
1568 >                    assertTrue(millisElapsedSince(startTime) < LONG_DELAY_MS);
1569 >                    assertEquals(0, ForkJoinTask.getQueuedTaskCount());
1570 >                    assertEquals(21, f.result);
1571 >                }};
1572 >            p.execute(a);
1573 >            assertTrue(p.awaitQuiescence(LONG_DELAY_MS, MILLISECONDS));
1574 >            assertTrue(millisElapsedSince(startTime) < LONG_DELAY_MS);
1575 >            assertTrue(p.isQuiescent());
1576 >            assertTrue(a.isDone());
1577 >            assertEquals(0, p.getQueuedTaskCount());
1578 >            assertFalse(p.getAsyncMode());
1579 >            assertEquals(0, p.getActiveThreadCount());
1580 >            assertEquals(0, p.getQueuedTaskCount());
1581 >            assertEquals(0, p.getQueuedSubmissionCount());
1582 >            assertFalse(p.hasQueuedSubmissions());
1583 >            assertFalse(p.isShutdown());
1584 >            assertFalse(p.isTerminating());
1585 >            assertFalse(p.isTerminated());
1586          } finally {
1587              joinPool(p);
1588          }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines