class Redwood::IdleManager

Constants

IDLE_THRESHOLD

Public Class Methods

new() click to toggle source
# File lib/sup/idle.rb, line 10
def initialize
  @no_activity_since = Time.now
  @idle = false
  @thread = nil
end

Public Instance Methods

ping() click to toggle source
# File lib/sup/idle.rb, line 16
def ping
  if @idle
    UpdateManager.relay self, :unidle, Time.at(@no_activity_since)
    @idle = false
  end
  @no_activity_since = Time.now
end
start() click to toggle source
# File lib/sup/idle.rb, line 24
def start
  @thread = Redwood::reporting_thread("checking for idleness") do
    while true
      sleep 1
      if !@idle and Time.now.to_i - @no_activity_since.to_i >= IDLE_THRESHOLD
        UpdateManager.relay self, :idle, Time.at(@no_activity_since)
        @idle = true
      end
    end
  end
end
stop() click to toggle source
# File lib/sup/idle.rb, line 36
def stop
  @thread.kill if @thread
  @thread = nil
end