class Concurrent::AbstractExecutorService
@!macro abstract_executor_service_public_api @!visibility private
Constants
- FALLBACK_POLICIES
-
The set of possible fallback policies that may be set at thread pool creation.
Attributes
@!macro executor_service_attr_reader_fallback_policy
Public Class Methods
Source
# File lib/concurrent-ruby/concurrent/executor/abstract_executor_service.rb, line 23 def initialize(opts = {}, &block) super(&nil) synchronize do @auto_terminate = opts.fetch(:auto_terminate, true) @name = opts.fetch(:name) if opts.key?(:name) ns_initialize(opts, &block) end end
Create a new thread pool.
Public Instance Methods
Source
# File lib/concurrent-ruby/concurrent/executor/abstract_executor_service.rb, line 72 def auto_terminate=(value) deprecated "Method #auto_terminate= has no effect. Set :auto_terminate option when executor is initialized." end
@!macro executor_service_method_auto_terminate_setter
Source
# File lib/concurrent-ruby/concurrent/executor/abstract_executor_service.rb, line 67 def auto_terminate? synchronize { @auto_terminate } end
@!macro executor_service_method_auto_terminate_question
Source
# File lib/concurrent-ruby/concurrent/executor/abstract_executor_service.rb, line 42 def kill raise NotImplementedError end
@!macro executor_service_method_kill
Source
# File lib/concurrent-ruby/concurrent/executor/abstract_executor_service.rb, line 52 def running? synchronize { ns_running? } end
@!macro executor_service_method_running_question
Source
# File lib/concurrent-ruby/concurrent/executor/abstract_executor_service.rb, line 37 def shutdown raise NotImplementedError end
@!macro executor_service_method_shutdown
Source
# File lib/concurrent-ruby/concurrent/executor/abstract_executor_service.rb, line 62 def shutdown? synchronize { ns_shutdown? } end
@!macro executor_service_method_shutdown_question
Source
# File lib/concurrent-ruby/concurrent/executor/abstract_executor_service.rb, line 57 def shuttingdown? synchronize { ns_shuttingdown? } end
@!macro executor_service_method_shuttingdown_question
Source
# File lib/concurrent-ruby/concurrent/executor/abstract_executor_service.rb, line 32 def to_s name ? "#{super[0..-2]} name: #{name}>" : super end
Source
# File lib/concurrent-ruby/concurrent/executor/abstract_executor_service.rb, line 47 def wait_for_termination(timeout = nil) raise NotImplementedError end
@!macro executor_service_method_wait_for_termination
Private Instance Methods
Source
# File lib/concurrent-ruby/concurrent/executor/abstract_executor_service.rb, line 84 def handle_fallback(*args) case fallback_policy when :abort raise RejectedExecutionError when :discard false when :caller_runs begin yield(*args) rescue => ex # let it fail log DEBUG, ex end true else fail "Unknown fallback policy #{fallback_policy}" end end
Handler which executes the ‘fallback_policy` once the queue size reaches `max_queue`.
@param [Array] args the arguments to the task which is being handled.
@!visibility private
Source
# File lib/concurrent-ruby/concurrent/executor/abstract_executor_service.rb, line 123 def ns_auto_terminate? @auto_terminate end
Source
# File lib/concurrent-ruby/concurrent/executor/abstract_executor_service.rb, line 103 def ns_execute(*args, &task) raise NotImplementedError end
Source
# File lib/concurrent-ruby/concurrent/executor/abstract_executor_service.rb, line 119 def ns_kill_execution # do nothing end
@!macro executor_service_method_ns_kill_execution
Callback method called when the executor has been killed. The default behavior is to do nothing.
Source
# File lib/concurrent-ruby/concurrent/executor/abstract_executor_service.rb, line 111 def ns_shutdown_execution # do nothing end
@!macro executor_service_method_ns_shutdown_execution
Callback method called when an orderly shutdown has completed. The default behavior is to signal all waiting threads.