class Backport::Server::Interval
A Backport periodical interval server.
Public Class Methods
new(period, &block)
click to toggle source
@param period [Float] The interval time in seconds. @param block [Proc] The proc to run on each interval. @yieldparam [Interval]
# File lib/backport/server/interval.rb, line 9 def initialize period, &block @period = period @block = block @ready = false @mutex = Mutex.new end
Public Instance Methods
starting()
click to toggle source
# File lib/backport/server/interval.rb, line 16 def starting @ready = false run_ready_thread end
tick()
click to toggle source
# File lib/backport/server/interval.rb, line 21 def tick return unless @ready @mutex.synchronize do @block.call self @ready = false end end
Private Instance Methods
run_ready_thread()
click to toggle source
@return [void]
# File lib/backport/server/interval.rb, line 32 def run_ready_thread Thread.new do until stopped? sleep @period break if stopped? @mutex.synchronize { @ready = true } changed notify_observers self end end end