It's valid but problematic for debugging, performance and reading clarity. Can you use ``` void updateState() { // do some stuff before while (this.timeReference.isAfter(lastInterval.getBeggining()) { this.timeReference = lastInterval.getEnd(); lastInterval = intervalIterator.next(); } // do more stuff after } ``` instead if `maybeUpdateTime()` is only called by `updateState()`? Or if you have performance requirements and don't want to (1) consume more CPU resources, (2) block other tasks in the same thread, maybe consider put `maybeUpdateTime()` into a separate thread that allows you to wait for a task to complete (update time).