Sha256: 30cd9f4fb7a000cab4ae4ef61ca5dd96aac615abc0da05d1f3209fc3afa68f10
Contents?: true
Size: 1.43 KB
Versions: 1
Compression:
Stored size: 1.43 KB
Contents
#!/usr/bin/env ruby $LOAD_PATH.push File.expand_path("../lib", __dir__) require "celluloid" 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 | examples/timers.rb |