class ThreadSafe::Util::VolatileTuple

arr.volatile_get(0) # => :bar
arr.cas(0, :foo, :bar) # => true
arr.volatile_get(0) # => :foo
arr.volatile_set(0, :foo)
arr = VolatileTuple.new(16)
Usage:
A fixed size array with volatile volatile getters/setters.

def compare_and_set(i, old_value, new_value)

def compare_and_set(i, old_value, new_value)
  @tuple[i].compare_and_set(old_value, new_value)
end

def each

def each
  @tuple.each {|ref| yield ref.get}
end

def initialize(size)

def initialize(size)
  @tuple = tuple = Tuple.new(size)
  i = 0
  while i < size
    tuple[i] = AtomicReference.new
    i += 1
  end
end

def size

def size
  @tuple.size
end

def volatile_get(i)

def volatile_get(i)
  @tuple[i].get
end

def volatile_set(i, value)

def volatile_set(i, value)
  @tuple[i].set(value)
end