class Andromeda::Atom::Region

Public Class Methods

new(init_value = 0) click to toggle source
# File lib/andromeda/atom.rb, line 55
def initialize(init_value = 0)
  init_value = init_value[:init_value].to_i if init_value.kind_of?(Hash)
  raise ArgumentError unless init_value.kind_of?(Fixnum)
  @count = Impl::Atom.new init_value
end

Public Instance Methods

enter(amount = 1) click to toggle source
# File lib/andromeda/atom.rb, line 65
def enter(amount = 1)
  raise ArgumentError unless amount.kind_of?(Fixnum)
  raise ArgumentError unless amount >= 0
  @count.update { |v| v + amount }
end
leave(amount = 1) click to toggle source
# File lib/andromeda/atom.rb, line 71
def leave(amount = 1)
  raise ArgumentError unless amount >= 0
  raise ArgumentError unless amount.kind_of?(Fixnum)
  @count.update { |v| v - amount }
end
to_short_s() click to toggle source
# File lib/andromeda/atom.rb, line 52
def to_short_s ; "(#{Impl::To_S.short_s(value)})" end
value() click to toggle source
# File lib/andromeda/atom.rb, line 63
def value ; @count.value end
wait_until_eq(val) click to toggle source
# File lib/andromeda/atom.rb, line 77
def wait_until_eq(val) ; @count.wait_until_eq(val) end