* Updated comments.
! Race condition.

If timeout() block raised exception, then, while in the ensure section, timeout
exception would be raised, then an ExitException would be propagated outside
timeout(), not default Error or user-specified exception.