class Pwrake::HostInfo

Attributes

continuous_fail[R]
group[R]
id[R]
idle_cores[RW]
ipaddr[R]
name[R]
ncore[R]
steal_flag[R]
weight[R]

Public Class Methods

local_ip() click to toggle source
# File lib/pwrake/option/host_map.rb, line 9
def self.local_ip
  @@local_ip ||=
    Socket.getifaddrs.select{|a| a.addr.ip?}.map{|a| a.addr.ip_address}
end
new(name,id,ncore,weight,group=nil) click to toggle source
# File lib/pwrake/option/host_map.rb, line 14
def initialize(name,id,ncore,weight,group=nil)
  @name = name
  @ncore = ncore || 1
  @weight = weight || 1.0
  @group = group || 0
  @id = id
  @continuous_fail = 0
  @total_fail = 0
  @count_task = 0
  @ipaddr = []
  begin
    @ipaddr << IPSocket.getaddress(@name)
  rescue
  end
end

Public Instance Methods

accept_core(use_cores) click to toggle source
# File lib/pwrake/option/host_map.rb, line 99
def accept_core(use_cores)
  use_cores <= @idle_cores
end
add_line(ncore=nil,weight=nil,group=nil) click to toggle source
# File lib/pwrake/option/host_map.rb, line 35
def add_line(ncore=nil,weight=nil,group=nil)
  ncore ||= 1
  weight ||= 1.0
  group ||= 0
  if @group != group
    raise "different group=#{group} for host=#{@name}"
  end
  @weight = (@weight*@ncore + weight*ncore)/(@ncore+ncore)
  @ncore += ncore
end
busy(n) click to toggle source
# File lib/pwrake/option/host_map.rb, line 65
def busy(n)
  @busy_cores += n
  @idle_cores -= n
end
count_result(result) click to toggle source
# File lib/pwrake/option/host_map.rb, line 85
def count_result(result)
  @count_task += 1
  case result
  when "end"
    @continuous_fail = 0
  when "fail"
    @continuous_fail += 1
    @total_fail += 1
  else
    raise "unknown result: #{result}"
  end
  @continuous_fail
end
idle(n) click to toggle source
# File lib/pwrake/option/host_map.rb, line 60
def idle(n)
  @busy_cores -= n
  @idle_cores += n
end
local?() click to toggle source
# File lib/pwrake/option/host_map.rb, line 46
def local?
  ipa = IPSocket.getaddress(@name)
  HostInfo.local_ip.include?(ipa)
end
retire(n) click to toggle source
# File lib/pwrake/option/host_map.rb, line 70
def retire(n)
  @idle_cores -= n
end
retired?() click to toggle source
# File lib/pwrake/option/host_map.rb, line 74
def retired?
  @idle_cores + @busy_cores < 1 # all retired
end
set_ip(ipa) click to toggle source
# File lib/pwrake/option/host_map.rb, line 56
def set_ip(ipa)
  @ipaddr.push(ipa)
end
set_ncore(n) click to toggle source
# File lib/pwrake/option/host_map.rb, line 51
def set_ncore(n)
  @busy_cores = 0
  @ncore = @idle_cores = n
end
steal_phase() { |self| ... } click to toggle source
# File lib/pwrake/option/host_map.rb, line 78
def steal_phase
  @steal_flag = true
  t = yield(self)
  @steal_flag = false
  t
end