Skip to content

Commit

Permalink
Revert "Merge pull request #348 from y-yagi/use_available_processor_c…
Browse files Browse the repository at this point in the history
…ount"

This reverts commit 21fdad7, reversing
changes made to 9644d13.

see #349
  • Loading branch information
grosser committed Aug 8, 2024
1 parent af5755b commit c316cc5
Show file tree
Hide file tree
Showing 3 changed files with 8 additions and 12 deletions.
1 change: 0 additions & 1 deletion Readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -196,7 +196,6 @@ Tips
- [Isolation] Do not reuse previous worker processes: `isolation: true`
- [Stop all processes with an alternate interrupt signal] `'INT'` (from `ctrl+c`) is caught by default. Catch `'TERM'` (from `kill`) with `interrupt_signal: 'TERM'`
- [Process count via ENV] `PARALLEL_PROCESSOR_COUNT=16` will use `16` instead of the number of processors detected. This is used to reconfigure a tool using `parallel` without inserting custom logic.
- [Process count] `parallel` uses a number of processors seen by the OS for process count by default. If you want to use a value considering CPU quota, please add `concurrent-ruby` to your `Gemfile`.

TODO
====
Expand Down
14 changes: 3 additions & 11 deletions lib/parallel.rb
Original file line number Diff line number Diff line change
Expand Up @@ -337,10 +337,10 @@ def physical_processor_count
end
end

# Number of processors seen by the OS or value considering CPU quota if the process is inside a cgroup,
# used for process scheduling
# Number of processors seen by the OS, used for process scheduling
def processor_count
@processor_count ||= Integer(ENV['PARALLEL_PROCESSOR_COUNT'] || available_processor_count)
require 'etc'
@processor_count ||= Integer(ENV['PARALLEL_PROCESSOR_COUNT'] || Etc.nprocessors)
end

def worker_number
Expand Down Expand Up @@ -695,13 +695,5 @@ def instrument_start(item, index, options)
return unless (on_start = options[:start])
options[:mutex].synchronize { on_start.call(item, index) }
end

def available_processor_count
require 'concurrent-ruby'
Concurrent.available_processor_count.floor
rescue LoadError, NoMethodError
require 'etc'
Etc.nprocessors
end
end
end
5 changes: 5 additions & 0 deletions spec/parallel_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,11 @@ def without_ractor_warning(out)
(1..999).should include(Parallel.processor_count)
end
end

it 'uses Etc.nprocessors in Ruby 2.2+' do
defined?(Etc).should == "constant"
Etc.respond_to?(:nprocessors).should == true
end
end

describe ".physical_processor_count" do
Expand Down

0 comments on commit c316cc5

Please sign in to comment.