Last Modified
2016-01-05 11:19:28 -0500
Requires
  • concurrent/atomic/atomic_reference
  • concurrent/atomic/atomic_boolean
  • concurrent/atomic/atomic_fixnum
  • concurrent/atomic/cyclic_barrier
  • concurrent/atomic/count_down_latch
  • concurrent/atomic/event
  • concurrent/atomic/read_write_lock
  • concurrent/atomic/semaphore
  • concurrent/atomic/thread_local_var

Description

@!macro [new] atomic_reference

An object reference that may be updated atomically. All read and write
operations have java volatile semantic.

@!macro thread_safe_variable_comparison

@see http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/AtomicReference.html
@see http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/package-summary.html

@!method initialize
  @!macro [new] atomic_reference_method_initialize
    @param [Object] value The initial value.

@!method get
  @!macro [new] atomic_reference_method_get
    Gets the current value.
    @return [Object] the current value

@!method set
  @!macro [new] atomic_reference_method_set
    Sets to the given value.
    @param [Object] new_value the new value
    @return [Object] the new value

@!method get_and_set
  @!macro [new] atomic_reference_method_get_and_set
    Atomically sets to the given value and returns the old value.
    @param [Object] new_value the new value
    @return [Object] the old value

@!method compare_and_set
  @!macro [new] atomic_reference_method_compare_and_set

    Atomically sets the value to the given updated value if
    the current value == the expected value.

    @param [Object] old_value the expected value
    @param [Object] new_value the new value

    @return [Boolean] `true` if successful. A `false` return indicates
    that the actual value was not equal to the expected value.