class Concurrent::MutexAtomicReference
@!visibility private @!macro internal_implementation_note
Public Class Methods
new(value = nil)
click to toggle source
@!macro atomic_reference_method_initialize
Calls superclass method
# File lib/concurrent-ruby/concurrent/atomic_reference/mutex_atomic.rb, line 11 def initialize(value = nil) super() synchronize { ns_initialize(value) } end
Public Instance Methods
_compare_and_set(old_value, new_value)
click to toggle source
@!macro atomic_reference_method_compare_and_set
# 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
get()
click to toggle source
@!macro atomic_reference_method_get
# File lib/concurrent-ruby/concurrent/atomic_reference/mutex_atomic.rb, line 17 def get synchronize { @value } end
Also aliased as: value
get_and_set(new_value)
click to toggle source
@!macro atomic_reference_method_get_and_set
# 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
Also aliased as: swap
set(new_value)
click to toggle source
@!macro atomic_reference_method_set
# File lib/concurrent-ruby/concurrent/atomic_reference/mutex_atomic.rb, line 23 def set(new_value) synchronize { @value = new_value } end
Also aliased as: value=
Protected Instance Methods
ns_initialize(value)
click to toggle source
# File lib/concurrent-ruby/concurrent/atomic_reference/mutex_atomic.rb, line 52 def ns_initialize(value) @value = value end