class Concurrent::Promises::ThenPromise

def initialize(delayed, blockers_count, default_executor, executor, args, &task)

def initialize(delayed, blockers_count, default_executor, executor, args, &task)
  super delayed, blockers_count, default_executor, executor, args, &task
end

def on_resolvable(resolved_future, index)

def on_resolvable(resolved_future, index)
  if resolved_future.fulfilled?
    Concurrent.executor(@Executor).post(resolved_future, @Args, @Task) do |future, args, task|
      evaluate_to lambda { future.apply args, task }
    end
  else
    resolve_with resolved_future.internal_state
  end
end