class Concurrent::Edge::ThenPromise

@!visibility private

Public Class Methods

new(blocked_by_future, default_executor, executor, &task) click to toggle source
# File lib/concurrent/edge/future.rb, line 1096
def initialize(blocked_by_future, default_executor, executor, &task)
  raise ArgumentError, 'only Future can be appended with then' unless blocked_by_future.is_a? Future
  super blocked_by_future, default_executor, executor, &task
end

Private Instance Methods

on_completable(done_future) click to toggle source
# File lib/concurrent/edge/future.rb, line 1101
def on_completable(done_future)
  if done_future.success?
    Concurrent.post_on(@Executor, done_future, @Task) do |future, task|
      evaluate_to lambda { future.apply task }
    end
  else
    complete_with done_future.internal_state
  end
end