class Concurrent::Promise

def complete(success, value, reason)

@!visibility private
def complete(success, value, reason)
  children_to_notify = synchronize do
    set_state!(success, value, reason)
    @children.dup
  end
  children_to_notify.each { |child| notify_child(child) }
  observers.notify_and_delete_observers{ [Time.now, self.value, reason] }
end