diff --git a/lib/facter/memory.rb b/lib/facter/memory.rb index 405d61ed92..24678e1ec2 100644 --- a/lib/facter/memory.rb +++ b/lib/facter/memory.rb @@ -17,11 +17,15 @@ # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston MA 02110-1301 USA module Facter::Memory + require 'thread' + def self.meminfo_number(tag) memsize = "" - File.readlines("/proc/meminfo").each do |l| - if l =~ /^#{tag}:\s+(\d+)\s+(\S+)/ - memsize = scale_number($1.to_f, $2) + Thread::exclusive do + File.readlines("/proc/meminfo").each do |l| + if l =~ /^#{tag}:\s+(\d+)\s+(\S+)/ + memsize = scale_number($1.to_f, $2) + end end end diff --git a/lib/facter/processor.rb b/lib/facter/processor.rb index f353e71204..812bd99838 100644 --- a/lib/facter/processor.rb +++ b/lib/facter/processor.rb @@ -18,15 +18,19 @@ # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston MA 02110-1301 USA # +require 'thread' + if Facter.kernel == "Linux" processor_num = -1 processor_list = [] - File.readlines("/proc/cpuinfo").each do |l| - if l =~ /processor\s+:\s+(\d+)/ - processor_num = $1.to_i - elsif l =~ /model name\s+:\s+(.*)\s*$/ - processor_list[processor_num] = $1 unless processor_num == -1 - processor_num = -1 + Thread::exclusive do + File.readlines("/proc/cpuinfo").each do |l| + if l =~ /processor\s+:\s+(\d+)/ + processor_num = $1.to_i + elsif l =~ /model name\s+:\s+(.*)\s*$/ + processor_list[processor_num] = $1 unless processor_num == -1 + processor_num = -1 + end end end