Sha256: 58f8485bd219c11cdf01c102e1c3f993bd0f59a201e6f9f4f9d3898c596264b0
Contents?: true
Size: 980 Bytes
Versions: 2
Compression:
Stored size: 980 Bytes
Contents
module Backport module Server # A Backport periodical interval server. # class Interval < Base # @param period [Float] The interval time in seconds. # @param block [Proc] The proc to run on each interval. # @yieldparam [Interval] def initialize period, &block @period = period @block = block @ready = false @mutex = Mutex.new end def starting @ready = false run_ready_thread end def tick return unless @ready @mutex.synchronize do @block.call self @ready = false end end private 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 end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
backport-1.1.2 | lib/backport/server/interval.rb |
backport-1.1.1 | lib/backport/server/interval.rb |