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