class Concurrent::MutexAtomicReference
@!visibility private @!macro internal_implementation_note
Public Class Methods
Source
# File lib/concurrent-ruby/concurrent/atomic_reference/mutex_atomic.rb, line 11 def initialize(value = nil) super() synchronize { ns_initialize(value) } end
@!macro atomic_reference_method_initialize
Calls superclass method
Public Instance Methods
Source
# File lib/concurrent-ruby/concurrent/atomic_reference/mutex_atomic.rb, line 39 def _compare_and_set(old_value, new_value) synchronize do if @value.equal? old_value @value = new_value true else false end end end
@!macro atomic_reference_method_compare_and_set
Source
# File lib/concurrent-ruby/concurrent/atomic_reference/mutex_atomic.rb, line 17 def get synchronize { @value } end
@!macro atomic_reference_method_get
Also aliased as: value
Source
# File lib/concurrent-ruby/concurrent/atomic_reference/mutex_atomic.rb, line 29 def get_and_set(new_value) synchronize do old_value = @value @value = new_value old_value end end
@!macro atomic_reference_method_get_and_set
Also aliased as: swap
Source
# File lib/concurrent-ruby/concurrent/atomic_reference/mutex_atomic.rb, line 23 def set(new_value) synchronize { @value = new_value } end
@!macro atomic_reference_method_set
Also aliased as: value=
Protected Instance Methods
Source
# File lib/concurrent-ruby/concurrent/atomic_reference/mutex_atomic.rb, line 52 def ns_initialize(value) @value = value end