aboutsummaryrefslogtreecommitdiffstats
path: root/Library
diff options
context:
space:
mode:
authorJack Nagel2013-11-26 20:23:19 -0600
committerJack Nagel2013-11-26 20:23:19 -0600
commitf172413a26cca0003fffca7a51f5530242f2faa4 (patch)
tree6f43df58cc316d128490849770e03066b5e917ba /Library
parent3c3bd76528f38f5cdd4fc37e2f015809d5a25c3d (diff)
downloadbrew-f172413a26cca0003fffca7a51f5530242f2faa4.tar.bz2
Cache calls to sysctl_bool at the source
Diffstat (limited to 'Library')
-rw-r--r--Library/Homebrew/os/mac/hardware.rb23
1 files changed, 13 insertions, 10 deletions
diff --git a/Library/Homebrew/os/mac/hardware.rb b/Library/Homebrew/os/mac/hardware.rb
index 4cd8eb775..dec4126a6 100644
--- a/Library/Homebrew/os/mac/hardware.rb
+++ b/Library/Homebrew/os/mac/hardware.rb
@@ -104,36 +104,39 @@ module MacCPUs
end
def altivec?
- @altivec ||= sysctl_bool('hw.optional.altivec')
+ sysctl_bool('hw.optional.altivec')
end
def avx?
- @avx ||= sysctl_bool('hw.optional.avx1_0')
+ sysctl_bool('hw.optional.avx1_0')
end
def sse3?
- @sse3 ||= sysctl_bool('hw.optional.sse3')
+ sysctl_bool('hw.optional.sse3')
end
def ssse3?
- @ssse3 ||= sysctl_bool('hw.optional.supplementalsse3')
+ sysctl_bool('hw.optional.supplementalsse3')
end
def sse4?
- @sse4 ||= sysctl_bool('hw.optional.sse4_1')
+ sysctl_bool('hw.optional.sse4_1')
end
def sse4_2?
- @sse4 ||= sysctl_bool('hw.optional.sse4_2')
+ sysctl_bool('hw.optional.sse4_2')
end
protected
def sysctl_bool(property)
- result = nil
- IO.popen("/usr/sbin/sysctl -n #{property} 2>/dev/null") do |f|
- result = f.gets.to_i # should be 0 or 1
+ (@properties ||= {}).fetch(property) do
+ result = nil
+ IO.popen("/usr/sbin/sysctl -n '#{property}' 2>/dev/null") do |f|
+ result = f.gets.to_i # should be 0 or 1
+ end
+ # sysctl call succeded and printed 1
+ @properties[property] = $?.success? && result == 1
end
- $?.success? && result == 1 # sysctl call succeded and printed 1
end
end