class 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
Calls superclass method
# File lib/concurrent-ruby/concurrent/atomic/mutex_atomic_fixnum.rb, line 12 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-ruby/concurrent/atomic/mutex_atomic_fixnum.rb, line 42 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-ruby/concurrent/atomic/mutex_atomic_fixnum.rb, line 35 def decrement(delta = 1) synchronize { ns_set(@value - delta.to_i) } end
Also aliased as: down
increment(delta = 1)
click to toggle source
@!macro atomic_fixnum_method_increment
# File lib/concurrent-ruby/concurrent/atomic/mutex_atomic_fixnum.rb, line 28 def increment(delta = 1) synchronize { ns_set(@value + delta.to_i) } end
Also aliased as: up
update() { |value| ... }
click to toggle source
@!macro atomic_fixnum_method_update
# File lib/concurrent-ruby/concurrent/atomic/mutex_atomic_fixnum.rb, line 54 def update synchronize do @value = yield @value end end
value()
click to toggle source
@!macro atomic_fixnum_method_value_get
# File lib/concurrent-ruby/concurrent/atomic/mutex_atomic_fixnum.rb, line 18 def value synchronize { @value } end
value=(value)
click to toggle source
@!macro atomic_fixnum_method_value_set
# File lib/concurrent-ruby/concurrent/atomic/mutex_atomic_fixnum.rb, line 23 def value=(value) synchronize { ns_set(value) } end
Protected Instance Methods
ns_initialize(initial)
click to toggle source
@!visibility private
# File lib/concurrent-ruby/concurrent/atomic/mutex_atomic_fixnum.rb, line 63 def ns_initialize(initial) ns_set(initial) end
Private Instance Methods
ns_set(value)
click to toggle source
@!visibility private
# File lib/concurrent-ruby/concurrent/atomic/mutex_atomic_fixnum.rb, line 70 def ns_set(value) Utility::NativeInteger.ensure_integer_and_bounds value @value = value end