class Concurrent::JavaAtomicFixnum

@!macro atomic_fixnum

def compare_and_set(expect, update)


@!macro atomic_fixnum_method_compare_and_set
def compare_and_set(expect, update)
  @atomic.compare_and_set(expect, update)
end

def decrement


@!macro atomic_fixnum_method_decrement
def decrement
  @atomic.decrement_and_get
end

def increment


@!macro atomic_fixnum_method_increment
def increment
  @atomic.increment_and_get
end

def initialize(init = 0)


@!macro atomic_fixnum_method_initialize
def initialize(init = 0)
  raise ArgumentError.new('initial value must be a Fixnum') unless init.is_a?(Fixnum)
  @atomic = java.util.concurrent.atomic.AtomicLong.new(init)
end

def value


@!macro atomic_fixnum_method_value
def value
  @atomic.get
end

def value=(value)


@!macro atomic_fixnum_method_value_eq
def value=(value)
  raise ArgumentError.new('value must be a Fixnum') unless value.is_a?(Fixnum)
  @atomic.set(value)
end