class Concurrent::Promises::AbstractEventFuture

def wait_until_resolved(timeout)

Returns:
  • (Boolean) -
def wait_until_resolved(timeout)
  return true if resolved?
  touch
  @Lock.synchronize do
    @Waiters.increment
    begin
      if timeout
        start = Concurrent.monotonic_time
        until resolved?
          break if @Condition.wait(@Lock, timeout) == nil # nil means timeout
          timeout -= (Concurrent.monotonic_time - start)
          break if timeout <= 0
        end
      else
        until resolved?
          @Condition.wait(@Lock, timeout)
        end
      end
    ensure
      # JRuby may raise ConcurrencyError
      @Waiters.decrement
    end
  end
  resolved?
end