lib/celluloid/cpu_counter.rb in celluloid-0.13.0.pre vs lib/celluloid/cpu_counter.rb in celluloid-0.13.0.pre2

- old
+ new

@@ -4,15 +4,21 @@ module CPUCounter case RbConfig::CONFIG['host_os'][/^[A-Za-z]+/] when 'darwin' @cores = Integer(`sysctl hw.ncpu`[/\d+/]) when 'linux' - @cores = File.read("/proc/cpuinfo").scan(/(?:core id|processor)\s+: \d+/).uniq.size + @cores = if File.exists?("/sys/devices/system/cpu/present") + File.read("/sys/devices/system/cpu/present").split('-').last.to_i+1 + else + Dir["/sys/devices/system/cpu/cpu*"].select { |n| n=~/cpu\d+/ }.count + end when 'mingw', 'mswin' @cores = Integer(`SET NUMBER_OF_PROCESSORS`[/\d+/]) else @cores = nil end def self.cores; @cores; end end end + +