lib/murasaki/event_loop.rb in murasaki-0.2.1 vs lib/murasaki/event_loop.rb in murasaki-0.2.1.1

- old
+ new

@@ -101,15 +101,16 @@ # Run timer once # @return [nil] nil def timer_once now_time = Time.now.to_f - @timers.delete_if do |timer| - if timer.start_time < now_time - timer.callback.call - true - end + callbacks = [] + @timers.reject! do |timer| + ticked = timer.start_time < now_time + callbacks << timer.callback if ticked + ticked end + callbacks.each { |c| c.call } nil end # Start the event loop # @return [nil] nil