class Concurrent::Promises::ScheduledPromise

def initialize(default_executor, intended_time)

def initialize(default_executor, intended_time)
  super Event.new(self, default_executor)
  @IntendedTime = intended_time
  in_seconds = begin
    now           = Time.now
    schedule_time = if @IntendedTime.is_a? Time
                      @IntendedTime
                    else
                      now + @IntendedTime
                    end
    [0, schedule_time.to_f - now.to_f].max
  end
  Concurrent.global_timer_set.post(in_seconds) do
    @Future.resolve_with RESOLVED
  end
end

def inspect

def inspect
  "#{to_s[0..-2]} intended_time: #{@IntendedTime}>"
end

def intended_time

def intended_time
  @IntendedTime
end