// returns last value
static A printPolledValueUntilPredicateOrTimeout(
IF0 makeValue,
IPred pred,
double timeout,
int interval default 100) {
Timeout timeOut = new(timeout);
A a = null;
while (!timeOut!) {
a = makeValue!;
if (pred != null && pred.get(a))
break;
else
sleep(interval);
}
ret a;
}