test/java/util/concurrent/BlockingQueue/CancelledProducerConsumerLoops.java

Print this page

        

*** 32,42 **** */ /* * @test * @bug 4486658 ! * @compile CancelledProducerConsumerLoops.java * @run main/timeout=7000 CancelledProducerConsumerLoops * @summary Checks for responsiveness of blocking queues to cancellation. * Runs under the assumption that ITERS computations require more than * TIMEOUT msecs to complete. */ --- 32,42 ---- */ /* * @test * @bug 4486658 ! * @compile -source 1.5 CancelledProducerConsumerLoops.java * @run main/timeout=7000 CancelledProducerConsumerLoops * @summary Checks for responsiveness of blocking queues to cancellation. * Runs under the assumption that ITERS computations require more than * TIMEOUT msecs to complete. */
*** 117,168 **** double secs = (double)(time) / 1000000000.0; System.out.println("\t " + secs + "s run time"); } } - static final class LTQasSQ<T> extends LinkedTransferQueue<T> { - LTQasSQ() { super(); } - public void put(T x) { - try { super.transfer(x); } - catch (InterruptedException ex) { throw new Error(); } - } - private final static long serialVersionUID = 42; - } - - static final class HalfSyncLTQ<T> extends LinkedTransferQueue<T> { - HalfSyncLTQ() { super(); } - public void put(T x) { - if (ThreadLocalRandom.current().nextBoolean()) - super.put(x); - else { - try { super.transfer(x); } - catch (InterruptedException ex) { throw new Error(); } - } - } - private final static long serialVersionUID = 42; - } - static void oneTest(int pairs, int iters) throws Exception { oneRun(new ArrayBlockingQueue<Integer>(CAPACITY), pairs, iters); oneRun(new LinkedBlockingQueue<Integer>(CAPACITY), pairs, iters); oneRun(new LinkedBlockingDeque<Integer>(CAPACITY), pairs, iters); oneRun(new SynchronousQueue<Integer>(), pairs, iters / 8); ! /* TODO: unbounded queue implementations are prone to OOME oneRun(new PriorityBlockingQueue<Integer>(iters / 2 * pairs), pairs, iters / 4); - oneRun(new LinkedTransferQueue<Integer>(), pairs, iters); - oneRun(new LTQasSQ<Integer>(), pairs, iters); - oneRun(new HalfSyncLTQ<Integer>(), pairs, iters); */ } ! static abstract class Stage implements Callable<Integer> { final BlockingQueue<Integer> queue; final CyclicBarrier barrier; final int iters; ! Stage (BlockingQueue<Integer> q, CyclicBarrier b, int iters) { queue = q; barrier = b; this.iters = iters; } } --- 117,144 ---- double secs = (double)(time) / 1000000000.0; System.out.println("\t " + secs + "s run time"); } } static void oneTest(int pairs, int iters) throws Exception { oneRun(new ArrayBlockingQueue<Integer>(CAPACITY), pairs, iters); oneRun(new LinkedBlockingQueue<Integer>(CAPACITY), pairs, iters); oneRun(new LinkedBlockingDeque<Integer>(CAPACITY), pairs, iters); + oneRun(new LinkedTransferQueue<Integer>(), pairs, iters); oneRun(new SynchronousQueue<Integer>(), pairs, iters / 8); ! /* PriorityBlockingQueue is unbounded oneRun(new PriorityBlockingQueue<Integer>(iters / 2 * pairs), pairs, iters / 4); */ } ! abstract static class Stage implements Callable<Integer> { final BlockingQueue<Integer> queue; final CyclicBarrier barrier; final int iters; ! Stage(BlockingQueue<Integer> q, CyclicBarrier b, int iters) { queue = q; barrier = b; this.iters = iters; } }