class FDB::LazyFuture

Public Class Methods

new(fpointer) click to toggle source
Calls superclass method FDB::Future::new
# File lib/fdbimpl.rb, line 416
def initialize(fpointer)
  super(fpointer)
  @set = false
  @value = nil
end

Public Instance Methods

method_missing( *args, &block ) click to toggle source
# File lib/fdbimpl.rb, line 412
def method_missing( *args, &block )
  value.__send__( *args, &block )
end
respond_to?(message) click to toggle source
# File lib/fdbimpl.rb, line 405
def respond_to?(message)
  message = message.to_sym
  message == :__result__ or
    message == :to_ptr or
    value.respond_to? message
end
value() click to toggle source
# File lib/fdbimpl.rb, line 422
def value
  if !@set
    block_until_ready

    begin
      getter
      release_memory
    rescue Error => e
      if e.code != 1102 # future_released
        raise
      end
    end

    @set = true
  end

  @value
end