class Concurrent::Promises::ScheduledPromise

Public Class Methods

new(default_executor, intended_time) click to toggle source
# File lib/concurrent-ruby/concurrent/promises.rb, line 2114
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

Public Instance Methods

inspect() click to toggle source
# File lib/concurrent-ruby/concurrent/promises.rb, line 2108
def inspect
  "#{to_s[0..-2]} intended_time: #{@IntendedTime}>"
end
intended_time() click to toggle source
# File lib/concurrent-ruby/concurrent/promises.rb, line 2104
def intended_time
  @IntendedTime
end