Class: Concurrent::AtomicReference

Inherits:
MutexAtomicReference
  • Object
show all
Defined in:
lib/concurrent/atomic/atomic_reference.rb,
lib/concurrent/atomic/atomic_reference.rb,
lib/concurrent/atomic/atomic_reference.rb,
lib/concurrent/atomic/atomic_reference.rb

Overview

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

Testing with ruby 2.1.2 Testing with Concurrent::MutexAtomicBoolean…

2.790000   0.000000   2.790000 (  2.791454)

Testing with Concurrent::CAtomicBoolean…

0.740000   0.000000   0.740000 (  0.740206)

Testing with jruby 1.9.3 Testing with Concurrent::MutexAtomicBoolean…

5.240000   2.520000   7.760000 (  3.683000)

Testing with Concurrent::JavaAtomicBoolean…

3.340000   0.010000   3.350000 (  0.855000)

Instance Method Summary collapse

Constructor Details

#initializeObject

Parameters:

  • value (Object)

    The initial value.



22
23
# File 'lib/concurrent/atomic/atomic_reference.rb', line 22

class Concurrent::AtomicReference < Concurrent::JavaAtomicReference
end

Instance Method Details

#compare_and_setBoolean

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

that the actual value was not equal to the expected value.

Parameters:

  • old_value (Object)

    the expected value

  • new_value (Object)

    the new value

Returns:

  • (Boolean)

    ‘true` if successful. A `false` return indicates



22
23
# File 'lib/concurrent/atomic/atomic_reference.rb', line 22

class Concurrent::AtomicReference < Concurrent::JavaAtomicReference
end

#getObject

Gets the current value.

Returns:

  • (Object)

    the current value



22
23
# File 'lib/concurrent/atomic/atomic_reference.rb', line 22

class Concurrent::AtomicReference < Concurrent::JavaAtomicReference
end

#get_and_setObject

Atomically sets to the given value and returns the old value.

Parameters:

  • new_value (Object)

    the new value

Returns:

  • (Object)

    the old value



22
23
# File 'lib/concurrent/atomic/atomic_reference.rb', line 22

class Concurrent::AtomicReference < Concurrent::JavaAtomicReference
end

#setObject

Sets to the given value.

Parameters:

  • new_value (Object)

    the new value

Returns:

  • (Object)

    the new value



22
23
# File 'lib/concurrent/atomic/atomic_reference.rb', line 22

class Concurrent::AtomicReference < Concurrent::JavaAtomicReference
end