class ThreadTimer

Public Class Methods

new(timeout_millis, callback) click to toggle source
# File lib/tdl/thread_timer.rb, line 2
def initialize(timeout_millis, callback)
  @timeout_millis=timeout_millis
  @continue = true
  @callback = callback
  @timer_thread = nil
end

Public Instance Methods

start() click to toggle source
# File lib/tdl/thread_timer.rb, line 9
def start
  @continue = true
  @timer_thread = Thread.new { start_timeout }
end
stop() click to toggle source
# File lib/tdl/thread_timer.rb, line 14
def stop
  @timer_thread.terminate unless @timer_thread.nil?
  @timer_thread = nil
  @continue = false
end

Private Instance Methods

start_timeout() click to toggle source
# File lib/tdl/thread_timer.rb, line 22
def start_timeout
  total_millis = 0
  interval_millis = 10
  while @continue && total_millis < @timeout_millis
    sleep interval_millis / 1000.00
    total_millis += interval_millis
  end

  if total_millis >= @timeout_millis
    @callback.call
  end
end