diff options
| author | Jack Nagel | 2013-11-26 20:23:19 -0600 |
|---|---|---|
| committer | Jack Nagel | 2013-11-26 20:23:19 -0600 |
| commit | f172413a26cca0003fffca7a51f5530242f2faa4 (patch) | |
| tree | 6f43df58cc316d128490849770e03066b5e917ba /Library | |
| parent | 3c3bd76528f38f5cdd4fc37e2f015809d5a25c3d (diff) | |
| download | brew-f172413a26cca0003fffca7a51f5530242f2faa4.tar.bz2 | |
Cache calls to sysctl_bool at the source
Diffstat (limited to 'Library')
| -rw-r--r-- | Library/Homebrew/os/mac/hardware.rb | 23 |
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 |
