checkEveryMillis *= checkEveryMultiplier;
long start = System.currentTimeMillis();
long end = start + maxWaitMillis;
while (System.currentTimeMillis() < end) {
if (c.eval()) {
return;
}
try {
Thread.sleep(checkEveryMillis);
} catch (InterruptedException e) {