Sha256: 1cfcfd06b53889d693f87ef2f75cb5b0ee21f2bfacbc71ac50b9f9ad2d6d724a
Contents?: true
Size: 1.44 KB
Versions: 1
Compression:
Stored size: 1.44 KB
Contents
#!/usr/bin/env ruby $LOAD_PATH.push File.expand_path("../lib", __dir__) require "celluloid/current" class TimerExample include Celluloid attr_reader :fired, :timer def initialize @fired = false @timer = after(3) { puts "Timer fired!"; @fired = true } end end # # Basic timer example # actor = TimerExample.new # The timer hasn't fired yet, so this should be false puts "Timer hasn't fired yet, so this should be false: #{actor.fired}" # Even if we wait a second, it still hasn't fired sleep 1 puts "Timer still shouldn't have fired yet: #{actor.fired}" # Wait until after the timer should've fired sleep 2.1 puts "Timer should've fired now: #{actor.fired}" # # Cancelling timers # actor = TimerExample.new # The timer hasn't fired yet, so this should be false puts "Timer hasn't fired yet, so this should be false: #{actor.fired}" # Cancel the timer, which should prevent it from firing actor.timer.cancel # Wait until after the timer should've fired sleep 3.1 puts "Timer shouldn't have fired because we cancelled it: #{actor.fired}" class RepeatingTimerExample include Celluloid def initialize @sheep = 0 end def count_sheep print "<#{self.class.name}> Counting sheep to go to sleep: " @timer = every(0.1) do @sheep += 1 print @sheep, " " end end def stop_counting @timer.cancel end end sleepy_actor = RepeatingTimerExample.new sleepy_actor.count_sheep sleep 1 sleepy_actor.stop_counting
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
celluloid-0.18.0.pre2 | examples/timers.rb |