1671 |
|
final LinkedBlockingDeque q = new LinkedBlockingDeque(2); |
1672 |
|
q.add(one); |
1673 |
|
q.add(two); |
1674 |
– |
ExecutorService executor = Executors.newFixedThreadPool(2); |
1674 |
|
final CheckedBarrier threadsStarted = new CheckedBarrier(2); |
1675 |
< |
executor.execute(new CheckedRunnable() { |
1676 |
< |
public void realRun() throws InterruptedException { |
1677 |
< |
assertFalse(q.offer(three)); |
1678 |
< |
threadsStarted.await(); |
1679 |
< |
assertTrue(q.offer(three, LONG_DELAY_MS, MILLISECONDS)); |
1680 |
< |
assertEquals(0, q.remainingCapacity()); |
1681 |
< |
}}); |
1682 |
< |
|
1683 |
< |
executor.execute(new CheckedRunnable() { |
1684 |
< |
public void realRun() throws InterruptedException { |
1685 |
< |
threadsStarted.await(); |
1686 |
< |
assertSame(one, q.take()); |
1687 |
< |
}}); |
1688 |
< |
|
1689 |
< |
joinPool(executor); |
1675 |
> |
final ExecutorService executor = Executors.newFixedThreadPool(2); |
1676 |
> |
try (PoolCleaner cleaner = cleaner(executor)) { |
1677 |
> |
executor.execute(new CheckedRunnable() { |
1678 |
> |
public void realRun() throws InterruptedException { |
1679 |
> |
assertFalse(q.offer(three)); |
1680 |
> |
threadsStarted.await(); |
1681 |
> |
assertTrue(q.offer(three, LONG_DELAY_MS, MILLISECONDS)); |
1682 |
> |
assertEquals(0, q.remainingCapacity()); |
1683 |
> |
}}); |
1684 |
> |
|
1685 |
> |
executor.execute(new CheckedRunnable() { |
1686 |
> |
public void realRun() throws InterruptedException { |
1687 |
> |
threadsStarted.await(); |
1688 |
> |
assertSame(one, q.take()); |
1689 |
> |
}}); |
1690 |
> |
} |
1691 |
|
} |
1692 |
|
|
1693 |
|
/** |
1696 |
|
public void testPollInExecutor() { |
1697 |
|
final LinkedBlockingDeque q = new LinkedBlockingDeque(2); |
1698 |
|
final CheckedBarrier threadsStarted = new CheckedBarrier(2); |
1699 |
< |
ExecutorService executor = Executors.newFixedThreadPool(2); |
1700 |
< |
executor.execute(new CheckedRunnable() { |
1701 |
< |
public void realRun() throws InterruptedException { |
1702 |
< |
assertNull(q.poll()); |
1703 |
< |
threadsStarted.await(); |
1704 |
< |
assertSame(one, q.poll(LONG_DELAY_MS, MILLISECONDS)); |
1705 |
< |
checkEmpty(q); |
1706 |
< |
}}); |
1707 |
< |
|
1708 |
< |
executor.execute(new CheckedRunnable() { |
1709 |
< |
public void realRun() throws InterruptedException { |
1710 |
< |
threadsStarted.await(); |
1711 |
< |
q.put(one); |
1712 |
< |
}}); |
1713 |
< |
|
1714 |
< |
joinPool(executor); |
1699 |
> |
final ExecutorService executor = Executors.newFixedThreadPool(2); |
1700 |
> |
try (PoolCleaner cleaner = cleaner(executor)) { |
1701 |
> |
executor.execute(new CheckedRunnable() { |
1702 |
> |
public void realRun() throws InterruptedException { |
1703 |
> |
assertNull(q.poll()); |
1704 |
> |
threadsStarted.await(); |
1705 |
> |
assertSame(one, q.poll(LONG_DELAY_MS, MILLISECONDS)); |
1706 |
> |
checkEmpty(q); |
1707 |
> |
}}); |
1708 |
> |
|
1709 |
> |
executor.execute(new CheckedRunnable() { |
1710 |
> |
public void realRun() throws InterruptedException { |
1711 |
> |
threadsStarted.await(); |
1712 |
> |
q.put(one); |
1713 |
> |
}}); |
1714 |
> |
} |
1715 |
|
} |
1716 |
|
|
1717 |
|
/** |