class Concurrent::Promises::AbstractFlatPromise

def add_delayed_of(future)

def add_delayed_of(future)
  delayed = future.promise.delayed_because
  if touched?
    clear_and_propagate_touch delayed
  else
    BlockedPromise.add_delayed @DelayedBecause, delayed
    clear_and_propagate_touch @DelayedBecause if touched?
  end
end