: tick ( loop -- ) [ [ [ tick-delegate>> tick* ] with-benchmarking ] [ [ draw-delegate>> draw* ] with-benchmarking ] bi ] keep record-benchmarking ; : start-loop ( loop -- ) t >>running? dup [ '[ _ tick-iteration ] f ] [ tick-interval-nanos>> nanoseconds ] bi >>tick-timer ! dup '[ _ frame-iteration ] f 1 milliseconds >>draw-timer ! [ tick-timer>> ] [ draw-timer>> ] bi [ start-timer ] bi@ ; tick-timer>> start-timer ;