Skip to content

Instantly share code, notes, and snippets.

@tadas-subonis
Created April 23, 2013 21:45
Show Gist options
  • Save tadas-subonis/5447667 to your computer and use it in GitHub Desktop.
Save tadas-subonis/5447667 to your computer and use it in GitHub Desktop.
@Test
public void shouldRemoveThreadsAfterCoreThreadTimeoutPeriod() throws Throwable {
CountDownLatch untilAllThreadsDone = startaBunchOfThreads();
untilAllThreadsDone.await();
waitUntilTimeoutOccurs();
assertEquals(countExecutorThreads(), 0);
}
private CountDownLatch startaBunchOfThreads() {
final CountDownLatch allThreadsDoneWaiter = new CountDownLatch(threadPoolSize);
for (int i = 0; i < threadPoolSize; i++) {
threadPoolExecutor.submit(new Runnable() {
@Override
public void run() {
allThreadsDoneWaiter.countDown();
}
});
}
return allThreadsDoneWaiter;
}
private void waitUntilTimeoutOccurs() throws InterruptedException {
Thread.sleep(timeoutMillis * 2);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment