Class: Evervault::Threading::RepeatedTimer
- Inherits:
-
Object
- Object
- Evervault::Threading::RepeatedTimer
- Defined in:
- lib/evervault/threading/repeated_timer.rb
Instance Method Summary collapse
-
#initialize(interval, func) ⇒ RepeatedTimer
constructor
A new instance of RepeatedTimer.
- #running? ⇒ Boolean
- #start ⇒ Object
- #stop ⇒ Object
- #update_interval(new_interval) ⇒ Object
Constructor Details
#initialize(interval, func) ⇒ RepeatedTimer
Returns a new instance of RepeatedTimer.
6 7 8 9 10 11 |
# File 'lib/evervault/threading/repeated_timer.rb', line 6 def initialize(interval, func) @thread = nil @interval = interval @func = func start end |
Instance Method Details
#running? ⇒ Boolean
28 29 30 |
# File 'lib/evervault/threading/repeated_timer.rb', line 28 def running? !@thread.nil? end |
#start ⇒ Object
13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
# File 'lib/evervault/threading/repeated_timer.rb', line 13 def start return if running? @thread = Thread.new do loop do sleep @interval begin @func.call rescue StandardError # Silently ignore exceptions end end end end |
#stop ⇒ Object
32 33 34 35 |
# File 'lib/evervault/threading/repeated_timer.rb', line 32 def stop @thread.exit @thread = nil end |
#update_interval(new_interval) ⇒ Object
37 38 39 |
# File 'lib/evervault/threading/repeated_timer.rb', line 37 def update_interval(new_interval) @interval = new_interval end |