class Andromeda::Guides::PoolGuide

Attributes

max_procs[R]
pool_track[R]

Public Class Methods

new(num_procs = nil) click to toggle source
# File lib/andromeda/pool_guide.rb, line 23
def initialize(num_procs = nil)
  num_procs  = PoolGuide.num_procs unless num_procs
  raise ArgumentError unless num_procs.is_a?(Fixnum)
  raise ArgumentError unless num_procs > 0
  @max_procs  = num_procs
  @pool_track = PoolTrack.new ThreadPool.new(@max_procs)
end
num_procs() click to toggle source

@return [Fixnum] number of processors as determined by Facter

# File lib/andromeda/pool_guide.rb, line 10
def self.num_procs
  if ENV['NUM_PROCS']
    @num_procs = ENV['NUM_PROCS'].to_i
  end
  case RUBY_PLATFORM
  when 'java'
    @num_procs = java.lang.Runtime.get_runtime.available_processors unless defined?(@num_procs)
  else
    @num_procs = Facter.sp_number_processors.strip.to_i unless defined?(@num_procs)
  end
  @num_procs
end

Public Instance Methods

pack(plan, track, was_suggested = false) click to toggle source
# File lib/andromeda/pool_guide.rb, line 36
def pack(plan, track, was_suggested = false)
  return plan if plan.frozen?
  return plan.identical_copy if was_suggested
  if max_procs > 1 then plan.identical_copy else plan end
end
track(spot, label, suggested_track = nil) click to toggle source
# File lib/andromeda/pool_guide.rb, line 31
def track(spot, label, suggested_track = nil)
  return suggested_track if suggested_track
  return @pool_track
end