class Concurrent::MutexAtomicFixnum
@!macro atomic_fixnum @!visibility private @!macro internal_implementation_note
Public Class Methods
Source
# File lib/concurrent-ruby/concurrent/atomic/mutex_atomic_fixnum.rb, line 12 def initialize(initial = 0) super() synchronize { ns_initialize(initial) } end
@!macro atomic_fixnum_method_initialize
Calls superclass method
Public Instance Methods
Source
# 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
@!macro atomic_fixnum_method_compare_and_set
Source
# File lib/concurrent-ruby/concurrent/atomic/mutex_atomic_fixnum.rb, line 35 def decrement(delta = 1) synchronize { ns_set(@value - delta.to_i) } end
@!macro atomic_fixnum_method_decrement
Also aliased as: down
Source
# File lib/concurrent-ruby/concurrent/atomic/mutex_atomic_fixnum.rb, line 28 def increment(delta = 1) synchronize { ns_set(@value + delta.to_i) } end
@!macro atomic_fixnum_method_increment
Also aliased as: up
Source
# File lib/concurrent-ruby/concurrent/atomic/mutex_atomic_fixnum.rb, line 54 def update synchronize do @value = yield @value end end
@!macro atomic_fixnum_method_update
Source
# File lib/concurrent-ruby/concurrent/atomic/mutex_atomic_fixnum.rb, line 18 def value synchronize { @value } end
@!macro atomic_fixnum_method_value_get
Source
# File lib/concurrent-ruby/concurrent/atomic/mutex_atomic_fixnum.rb, line 23 def value=(value) synchronize { ns_set(value) } end
@!macro atomic_fixnum_method_value_set
Protected Instance Methods
Source
# File lib/concurrent-ruby/concurrent/atomic/mutex_atomic_fixnum.rb, line 63 def ns_initialize(initial) ns_set(initial) end
@!visibility private
Private Instance Methods
Source
# 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
@!visibility private