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=
swap(new_value)
Alias for: get_and_set
value()
Alias for: get
value=(new_value)
Alias for: set

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