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
+
+