sclass Timeout { long started, deadline; *(double seconds) { started = now(); deadline = started+toMS(seconds); } bool reached aka get() { ping(); ret now() >= deadline; } double elapsedSeconds() { ret elapsedSeconds_now(started); } }