1068 |
|
void assertThreadBlocks(Thread thread, Thread.State expected) { |
1069 |
|
// always sleep at least 1 ms, avoiding transitional states |
1070 |
|
// with high probability |
1071 |
< |
for (long retries = LONG_DELAY_MS; retries-->0; ) { |
1071 |
> |
for (long retries = LONG_DELAY_MS * 3 / 4; retries-->0; ) { |
1072 |
|
try { delay(1); } |
1073 |
|
catch (InterruptedException fail) { |
1074 |
|
fail("Unexpected InterruptedException"); |
1635 |
|
} catch (Throwable fail) { |
1636 |
|
threadUnexpectedException(fail); |
1637 |
|
} |
1638 |
+ |
} |
1639 |
+ |
|
1640 |
+ |
public void await(CyclicBarrier barrier) { |
1641 |
+ |
try { |
1642 |
+ |
barrier.await(LONG_DELAY_MS, MILLISECONDS); |
1643 |
+ |
} catch (Throwable fail) { |
1644 |
+ |
threadUnexpectedException(fail); |
1645 |
+ |
} |
1646 |
|
} |
1647 |
|
|
1648 |
|
// /** |