Class: CDC::Parallel::Configuration
- Inherits:
-
ConfigurationData
- Object
- Data
- ConfigurationData
- CDC::Parallel::Configuration
- Defined in:
- lib/cdc/parallel/configuration.rb,
sig/cdc/parallel/configuration.rbs
Overview
Immutable configuration for Ractor runtimes.
Instance Attribute Summary collapse
-
#size ⇒ Integer
readonly
Number of worker Ractors to boot.
-
#timeout ⇒ Numeric?
readonly
Optional wait timeout in seconds.
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize(size: Etc.nprocessors, timeout: nil) ⇒ Configuration
constructor
Create a validated runtime configuration.
Constructor Details
#initialize(size: Etc.nprocessors, timeout: nil) ⇒ Configuration
Create a validated runtime configuration.
39 40 41 42 43 44 45 46 47 |
# File 'lib/cdc/parallel/configuration.rb', line 39 def initialize(size: Etc.nprocessors, timeout: nil) raise ArgumentError, "size must be an Integer" unless size.is_a?(Integer) raise ArgumentError, "size must be greater than zero" unless size.positive? raise ArgumentError, "timeout must be numeric" unless timeout.nil? || timeout.is_a?(Numeric) raise ArgumentError, "timeout must be greater than zero" if timeout && !timeout.positive? super ::Ractor.make_shareable(self) end |
Instance Attribute Details
#size ⇒ Integer (readonly)
Returns Number of worker Ractors to boot.
29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
# File 'lib/cdc/parallel/configuration.rb', line 29 class Configuration < ConfigurationData # Create a validated runtime configuration. # # @param size [Integer] # Worker count. Must be greater than zero. # @param timeout [Numeric, nil] # Optional timeout in seconds. Must be greater than zero when provided. # @raise [ArgumentError] # Raised when `size` or `timeout` is invalid. # @return [void] def initialize(size: Etc.nprocessors, timeout: nil) raise ArgumentError, "size must be an Integer" unless size.is_a?(Integer) raise ArgumentError, "size must be greater than zero" unless size.positive? raise ArgumentError, "timeout must be numeric" unless timeout.nil? || timeout.is_a?(Numeric) raise ArgumentError, "timeout must be greater than zero" if timeout && !timeout.positive? super ::Ractor.make_shareable(self) end end |
#timeout ⇒ Numeric? (readonly)
Returns Optional wait timeout in seconds.
29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
# File 'lib/cdc/parallel/configuration.rb', line 29 class Configuration < ConfigurationData # Create a validated runtime configuration. # # @param size [Integer] # Worker count. Must be greater than zero. # @param timeout [Numeric, nil] # Optional timeout in seconds. Must be greater than zero when provided. # @raise [ArgumentError] # Raised when `size` or `timeout` is invalid. # @return [void] def initialize(size: Etc.nprocessors, timeout: nil) raise ArgumentError, "size must be an Integer" unless size.is_a?(Integer) raise ArgumentError, "size must be greater than zero" unless size.positive? raise ArgumentError, "timeout must be numeric" unless timeout.nil? || timeout.is_a?(Numeric) raise ArgumentError, "timeout must be greater than zero" if timeout && !timeout.positive? super ::Ractor.make_shareable(self) end end |
Class Method Details
.new ⇒ instance
15 |
# File 'sig/cdc/parallel/configuration.rbs', line 15
def self.new: (?size: Integer, ?timeout: Numeric?) -> instance
|