Parent

Files

Class/Module Index [+]

Quicksearch

Concurrent::MutexAtomicFixnum

@!macro atomic_fixnum @!visibility private @!macro internal_implementation_note

Public Class Methods

new(initial = 0) click to toggle source

@!macro atomic_fixnum_method_initialize

# File lib/concurrent/atomic/mutex_atomic_fixnum.rb, line 15
def initialize(initial = 0)
  super()
  synchronize { ns_initialize(initial) }
end

Public Instance Methods

compare_and_set(expect, update) click to toggle source

@!macro atomic_fixnum_method_compare_and_set

# File lib/concurrent/atomic/mutex_atomic_fixnum.rb, line 45
def compare_and_set(expect, update)
  synchronize do
    if @value == expect.to_i
      @value = update.to_i
      true
    else
      false
    end
  end
end
decrement(delta = 1) click to toggle source

@!macro atomic_fixnum_method_decrement

# File lib/concurrent/atomic/mutex_atomic_fixnum.rb, line 38
def decrement(delta = 1)
  synchronize { ns_set(@value - delta.to_i) }
end
Also aliased as: down
down(delta = 1) click to toggle source
Alias for: decrement
increment(delta = 1) click to toggle source

@!macro atomic_fixnum_method_increment

# File lib/concurrent/atomic/mutex_atomic_fixnum.rb, line 31
def increment(delta = 1)
  synchronize { ns_set(@value + delta.to_i) }
end
Also aliased as: up
up(delta = 1) click to toggle source
Alias for: increment
update() click to toggle source

@!macro atomic_fixnum_method_update

# File lib/concurrent/atomic/mutex_atomic_fixnum.rb, line 57
def update
  synchronize do
    @value = yield @value
  end
end
value() click to toggle source

@!macro atomic_fixnum_method_value_get

# File lib/concurrent/atomic/mutex_atomic_fixnum.rb, line 21
def value
  synchronize { @value }
end
value=(value) click to toggle source

@!macro atomic_fixnum_method_value_set

# File lib/concurrent/atomic/mutex_atomic_fixnum.rb, line 26
def value=(value)
  synchronize { ns_set(value) }
end

Protected Instance Methods

ns_initialize(initial) click to toggle source

@!visibility private

# File lib/concurrent/atomic/mutex_atomic_fixnum.rb, line 66
def ns_initialize(initial)
  ns_set(initial)
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.