Sha256: b601edcff53ead795a6b334c806d1a104cfe5254fdab85d682961e41ef4e59ca
Contents?: true
Size: 861 Bytes
Versions: 18
Compression:
Stored size: 861 Bytes
Contents
require 'concurrent/constants' require 'concurrent/utility/monotonic_time' require 'concurrent/channel/tick' require 'concurrent/channel/buffer/timer' module Concurrent class Channel module Buffer class Ticker < Timer private def ns_initialize(interval) @interval = interval.to_f @next_tick = Concurrent.monotonic_time + interval self.capacity = 1 end def do_poll synchronize do if ns_closed? return Concurrent::NULL, false elsif (now = Concurrent.monotonic_time) >= @next_tick tick = Concurrent::Channel::Tick.new(@next_tick) @next_tick = now + @interval return tick, true else return nil, true end end end end end end end
Version data entries
18 entries across 18 versions & 1 rubygems