Skip to content

Commit e005f53

Browse files
committed
More consustent thread pool constructors.
1 parent ad62177 commit e005f53

File tree

4 files changed

+18
-31
lines changed

4 files changed

+18
-31
lines changed

lib/concurrent/executor/java_cached_thread_pool.rb

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -17,22 +17,21 @@ class JavaCachedThreadPool < JavaThreadPoolExecutor
1717
#
1818
# @see http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Executors.html#newCachedThreadPool--
1919
def initialize(opts = {})
20-
super(opts)
20+
defaults = { idletime: DEFAULT_THREAD_IDLETIMEOUT }
21+
overrides = { min_threads: 0,
22+
max_threads: DEFAULT_MAX_POOL_SIZE,
23+
max_queue: 0 }
24+
super(defaults.merge(opts).merge(overrides))
2125
end
2226

2327
protected
2428

2529
def ns_initialize(opts)
26-
@fallback_policy = opts.fetch(:fallback_policy, opts.fetch(:overflow_policy, :abort))
27-
deprecated ':overflow_policy is deprecated terminology, please use :fallback_policy instead' if opts.has_key?(:overflow_policy)
30+
super(opts)
2831
@max_queue = 0
29-
30-
raise ArgumentError.new("#{@fallback_policy} is not a valid fallback policy") unless FALLBACK_POLICY_CLASSES.keys.include?(@fallback_policy)
31-
3232
@executor = java.util.concurrent.Executors.newCachedThreadPool
3333
@executor.setRejectedExecutionHandler(FALLBACK_POLICY_CLASSES[@fallback_policy].new)
3434
@executor.setKeepAliveTime(opts.fetch(:idletime, DEFAULT_THREAD_IDLETIMEOUT), java.util.concurrent.TimeUnit::SECONDS)
35-
3635
self.auto_terminate = opts.fetch(:auto_terminate, true)
3736
end
3837
end

lib/concurrent/executor/java_fixed_thread_pool.rb

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,12 @@ class JavaFixedThreadPool < JavaThreadPoolExecutor
1818
#
1919
# @see http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Executors.html#newFixedThreadPool-int-
2020
def initialize(num_threads, opts = {})
21-
22-
opts = {
23-
min_threads: num_threads,
24-
max_threads: num_threads
25-
}.merge(opts)
26-
super(opts)
21+
raise ArgumentError.new('number of threads must be greater than zero') if num_threads.to_i < 1
22+
defaults = { max_queue: DEFAULT_MAX_QUEUE_SIZE,
23+
idletime: DEFAULT_THREAD_IDLETIMEOUT }
24+
overrides = { min_threads: num_threads,
25+
max_threads: num_threads }
26+
super(defaults.merge(opts).merge(overrides))
2727
end
2828
end
2929
end

lib/concurrent/executor/ruby_cached_thread_pool.rb

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,15 +13,10 @@ class RubyCachedThreadPool < RubyThreadPoolExecutor
1313
#
1414
# @raise [ArgumentError] if `fallback_policy` is not a known policy
1515
def initialize(opts = {})
16-
fallback_policy = opts.fetch(:fallback_policy, opts.fetch(:overflow_policy, :abort))
17-
raise ArgumentError.new("#{fallback_policy} is not a valid fallback policy") unless FALLBACK_POLICIES.include?(fallback_policy)
18-
1916
defaults = { idletime: DEFAULT_THREAD_IDLETIMEOUT }
2017
overrides = { min_threads: 0,
2118
max_threads: DEFAULT_MAX_POOL_SIZE,
22-
fallback_policy: fallback_policy,
2319
max_queue: DEFAULT_MAX_QUEUE_SIZE }
24-
2520
super(defaults.merge(opts).merge(overrides))
2621
end
2722
end

lib/concurrent/executor/ruby_fixed_thread_pool.rb

Lines changed: 6 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -15,19 +15,12 @@ class RubyFixedThreadPool < RubyThreadPoolExecutor
1515
# @raise [ArgumentError] if `num_threads` is less than or equal to zero
1616
# @raise [ArgumentError] if `fallback_policy` is not a known policy
1717
def initialize(num_threads, opts = {})
18-
fallback_policy = opts.fetch(:fallback_policy, opts.fetch(:overflow_policy, :abort))
19-
raise ArgumentError.new("#{fallback_policy} is not a valid fallback policy") unless FALLBACK_POLICIES.include?(fallback_policy)
20-
21-
raise ArgumentError.new('number of threads must be greater than zero') if num_threads < 1
22-
23-
opts = {
24-
min_threads: num_threads,
25-
max_threads: num_threads,
26-
fallback_policy: fallback_policy,
27-
max_queue: DEFAULT_MAX_QUEUE_SIZE,
28-
idletime: DEFAULT_THREAD_IDLETIMEOUT,
29-
}.merge(opts)
30-
super(opts)
18+
raise ArgumentError.new('number of threads must be greater than zero') if num_threads.to_i < 1
19+
defaults = { max_queue: DEFAULT_MAX_QUEUE_SIZE,
20+
idletime: DEFAULT_THREAD_IDLETIMEOUT }
21+
overrides = { min_threads: num_threads,
22+
max_threads: num_threads }
23+
super(defaults.merge(opts).merge(overrides))
3124
end
3225
end
3326
end

0 commit comments

Comments
 (0)