class Elevate::Future

Constants

FULFILLED
OUTSTANDING

Public Class Methods

new() click to toggle source
# File lib/elevate/future.rb, line 6
def initialize
  @lock = NSConditionLock.alloc.initWithCondition(OUTSTANDING)
  @value = nil
end

Public Instance Methods

fulfill(value) click to toggle source
# File lib/elevate/future.rb, line 11
def fulfill(value)
  if @lock.tryLockWhenCondition(OUTSTANDING)
    @value = value
    @lock.unlockWithCondition(FULFILLED)
  end
end
value() click to toggle source
# File lib/elevate/future.rb, line 18
def value
  value = nil

  @lock.lockWhenCondition(FULFILLED)
  value = @value
  @lock.unlockWithCondition(FULFILLED)

  value
end