try {
new DefaultTimeoutableCompletionService(new ExecutorCompletionService(newSingleThreadExecutor()), millis(1), new RealClock()).submit(asList(callable));
fail("didn't timeout");
} catch (TimeoutException e) {
waitOrTimeout(new Condition() {
public boolean isSatisfied() {
return interrupted.get();
}
}, timeout(seconds(10)));
}