class Concurrent::RubyThreadPoolExecutor

def ensure_capacity?

Returns:
  • (Boolean) - true if the pool has enough capacity else false
def ensure_capacity?
  additional = 0
  capacity = true
  if @pool.size < @min_length
    additional = @min_length - @pool.size
  elsif @queue.empty? && @queue.num_waiting >= 1
    additional = 0
  elsif @pool.size == 0 && @min_length == 0
    additional = 1
  elsif @pool.size < @max_length || @max_length == 0
    additional = 1
  elsif @max_queue == 0 || @queue.size < @max_queue
    additional = 0
  else
    capacity = false
  end
  additional.times do
    @pool << create_worker_thread
  end
  if additional > 0
    @largest_length = [@largest_length, @pool.length].max
  end
  capacity
end