Skip to content

Commit 3a62f3b

Browse files
authored
Merge pull request #952 from ruby-concurrency/nprocessors
Should always be able to use Etc.nprocessors
2 parents 834885d + a4dad22 commit 3a62f3b

File tree

1 file changed

+1
-34
lines changed

1 file changed

+1
-34
lines changed

lib/concurrent-ruby/concurrent/utility/processor_counter.rb

Lines changed: 1 addition & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -79,42 +79,9 @@ def physical_processor_count
7979
def compute_processor_count
8080
if Concurrent.on_jruby?
8181
java.lang.Runtime.getRuntime.availableProcessors
82-
elsif Etc.respond_to?(:nprocessors) && (nprocessor = Etc.nprocessors rescue nil)
83-
nprocessor
8482
else
85-
os_name = RbConfig::CONFIG["target_os"]
86-
if os_name =~ /mingw|mswin/
87-
require 'win32ole'
88-
result = WIN32OLE.connect("winmgmts://").ExecQuery(
89-
"select NumberOfLogicalProcessors from Win32_Processor")
90-
result.to_enum.collect(&:NumberOfLogicalProcessors).reduce(:+)
91-
elsif File.readable?("/proc/cpuinfo") && (cpuinfo_count = IO.read("/proc/cpuinfo").scan(/^processor/).size) > 0
92-
cpuinfo_count
93-
elsif File.executable?("/usr/bin/nproc")
94-
IO.popen("/usr/bin/nproc --all", &:read).to_i
95-
elsif File.executable?("/usr/bin/hwprefs")
96-
IO.popen("/usr/bin/hwprefs thread_count", &:read).to_i
97-
elsif File.executable?("/usr/sbin/psrinfo")
98-
IO.popen("/usr/sbin/psrinfo", &:read).scan(/^.*on-*line/).size
99-
elsif File.executable?("/usr/sbin/ioscan")
100-
IO.popen("/usr/sbin/ioscan -kC processor", &:read).scan(/^.*processor/).size
101-
elsif File.executable?("/usr/sbin/pmcycles")
102-
IO.popen("/usr/sbin/pmcycles -m", &:read).count("\n")
103-
elsif File.executable?("/usr/sbin/lsdev")
104-
IO.popen("/usr/sbin/lsdev -Cc processor -S 1", &:read).count("\n")
105-
elsif File.executable?("/usr/sbin/sysconf") and os_name =~ /irix/i
106-
IO.popen("/usr/sbin/sysconf NPROC_ONLN", &:read).to_i
107-
elsif File.executable?("/usr/sbin/sysctl")
108-
IO.popen("/usr/sbin/sysctl -n hw.ncpu", &:read).to_i
109-
elsif File.executable?("/sbin/sysctl")
110-
IO.popen("/sbin/sysctl -n hw.ncpu", &:read).to_i
111-
else
112-
# TODO (pitr-ch 05-Nov-2016): warn about failures
113-
1
114-
end
83+
Etc.nprocessors
11584
end
116-
rescue
117-
return 1
11885
end
11986

12087
def compute_physical_processor_count

0 commit comments

Comments
 (0)