Module: Routemaster::Responses::ResponsePromise::Pool

Defined in:
lib/routemaster/responses/response_promise.rb

Constant Summary collapse

LOCK =
Mutex.new

Class Method Summary collapse

Class Method Details

._build_poolObject



60
61
62
# File 'lib/routemaster/responses/response_promise.rb', line 60

def self._build_pool
  Concurrent::ThreadPoolExecutor.new(min_length: 5, max_length: 20, max_queue: 0, max_threads: 20, fallback_policy: :caller_runs)
end

.currentObject



45
46
47
48
49
# File 'lib/routemaster/responses/response_promise.rb', line 45

def self.current
  LOCK.synchronize do
    @pool ||= _build_pool
  end
end

.resetObject



51
52
53
54
55
56
57
58
# File 'lib/routemaster/responses/response_promise.rb', line 51

def self.reset
  LOCK.synchronize do
    return unless @pool
    @pool.tap(&:shutdown).wait_for_termination
    @pool = nil
  end
  self
end