Class: Concurrent::AtomicReference

Inherits:
JavaAtomicReference
  • Object
show all
Defined in:
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)

See Also:

Instance Method Summary (collapse)

Constructor Details

- (undocumented) initialize

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

- (Boolean) compare_and_set

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

- (Object) get

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

- (Object) get_and_set

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

- (Object) set

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

- (String) to_s Also known as: inspect

Returns Short string representation.

Returns:

  • (String)

    Short string representation.



46
47
48
# File 'lib/concurrent/atomic/atomic_reference.rb', line 46

def to_s
  format '<#%s:0x%x value:%s>', self.class, object_id << 1, get
end