# File lib/fssm/backends/polling.rb, line 3 def initialize(options={}) @handlers = [] @latency = options[:latency] || 1.5 end
# File lib/fssm/backends/polling.rb, line 8 def add_handler(handler, preload=true) handler.refresh(nil, true) if preload @handlers << handler end
# File lib/fssm/backends/polling.rb, line 13 def run begin loop do start = Time.now.to_f @handlers.each { |handler| handler.refresh } nap_time = @latency - (Time.now.to_f - start) sleep nap_time if nap_time > 0 end rescue Interrupt end end