class ConcurrentRails::Future

Attributes

executor[R]
future[R]

Public Class Methods

new(executor: :io, &block) click to toggle source
# File lib/concurrent_rails/future.rb, line 5
def initialize(executor: :io, &block)
  @executor = executor
  @future   = run_on_rails(block)
  ActiveSupport::Deprecation.warn('ConcurrentRails::Future is deprecated. See README for details')
end

Public Instance Methods

execute() click to toggle source
# File lib/concurrent_rails/future.rb, line 11
def execute
  future.execute

  self
end

Private Instance Methods

permit_concurrent_loads(&block) click to toggle source
# File lib/concurrent_rails/future.rb, line 41
def permit_concurrent_loads(&block)
  rails_wrapped do
    ActiveSupport::Dependencies.interlock.permit_concurrent_loads(&block)
  end
end
rails_wrapped(&block) click to toggle source
# File lib/concurrent_rails/future.rb, line 37
def rails_wrapped(&block)
  Rails.application.executor.wrap(&block)
end
run_on_rails(block) click to toggle source
# File lib/concurrent_rails/future.rb, line 29
def run_on_rails(block)
  @future = rails_wrapped do
    Concurrent::Future.new(executor: executor) do
      rails_wrapped(&block)
    end
  end
end