if(condition.isSatisfied()) {
publisher.publish(new ConditionSatisfied(condition, failureCount));
return;
}
failureCount++;
publisher.publish(new ConditionDissatisfied(condition, failureCount));
ticker.tick();
} while(!ticker.isExpired());
throw new PollTimeoutException(condition);
}