< prev index next >

test/jdk/java/util/concurrent/tck/CyclicBarrierTest.java

Print this page
8225490: Miscellaneous changes imported from jsr166 CVS 2019-09
Reviewed-by: martin, alanb

*** 40,50 **** import java.util.concurrent.CyclicBarrier; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.ThreadLocalRandom; import java.util.concurrent.TimeoutException; - import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicInteger; import junit.framework.Test; import junit.framework.TestSuite; --- 40,49 ----
*** 321,358 **** awaitTermination(t1); awaitTermination(t2); } /** - * All threads block while a barrier is broken. - */ - public void testReset_Leakage() throws InterruptedException { - final CyclicBarrier c = new CyclicBarrier(2); - final AtomicBoolean done = new AtomicBoolean(); - Thread t = newStartedThread(new CheckedRunnable() { - public void realRun() { - while (!done.get()) { - try { - while (c.isBroken()) - c.reset(); - - c.await(); - shouldThrow(); - } - catch (BrokenBarrierException | InterruptedException ok) {} - }}}); - - for (int i = 0; i < 4; i++) { - delay(timeoutMillis()); - t.interrupt(); - } - done.set(true); - t.interrupt(); - awaitTermination(t); - } - - /** * Reset of a non-broken barrier does not break barrier */ public void testResetWithoutBreakage() throws Exception { final CyclicBarrier barrier = new CyclicBarrier(3); for (int i = 0; i < 3; i++) { --- 320,329 ----
*** 503,513 **** final CyclicBarrier barrier = new CyclicBarrier(parties, () -> tripCount.getAndIncrement()); final ExecutorService e = Executors.newFixedThreadPool(nTasks); final Runnable awaiter = () -> { try { ! if (ThreadLocalRandom.current().nextBoolean()) barrier.await(); else barrier.await(LONG_DELAY_MS, MILLISECONDS); awaitCount.getAndIncrement(); } catch (Throwable fail) { threadUnexpectedException(fail); }}; --- 474,484 ---- final CyclicBarrier barrier = new CyclicBarrier(parties, () -> tripCount.getAndIncrement()); final ExecutorService e = Executors.newFixedThreadPool(nTasks); final Runnable awaiter = () -> { try { ! if (randomBoolean()) barrier.await(); else barrier.await(LONG_DELAY_MS, MILLISECONDS); awaitCount.getAndIncrement(); } catch (Throwable fail) { threadUnexpectedException(fail); }};
< prev index next >