A Ref is a purely functional description of a mutable reference. The fundamental operations of a Ref are set and get. set sets the reference to a new value. get gets the current value of the reference.
By default, Ref is implemented in terms of compare and swap operations for maximum performance and does not support performing effects within update operations. If you need to perform effects within update operations you can create a Ref.Synchronized, a specialized type of Ref that supports performing effects within update operations at some cost to performance. In this case writes will semantically block other writers, while multiple readers can read simultaneously.
NOTE: While Ref provides the functional equivalent of a mutable reference, the value inside the Ref should normally be immutable since compare and swap operations are not safe for mutable values that do not support concurrent access. If you do need to use a mutable value Ref.Synchronized will guarantee that access to the value is properly synchronized.
Attributes
- Companion
- object
- Graph
-
- Supertypes
-
trait Serializableclass Objecttrait Matchableclass Any
- Known subtypes
-
class Synchronized[A]
Members list
Value members
Abstract methods
Reads the value from the Ref.
Reads the value from the Ref.
Attributes
Atomically modifies the Ref with the specified function, which computes a return value for the modification. This is a more powerful version of update.
Atomically modifies the Ref with the specified function, which computes a return value for the modification. This is a more powerful version of update.
Attributes
Writes a new value to the Ref, with a guarantee of immediate consistency (at some cost to performance).
Writes a new value to the Ref, with a guarantee of immediate consistency (at some cost to performance).
Attributes
Concrete methods
Atomically adds delta to the current value of the Ref and returns the updated value.
Atomically adds delta to the current value of the Ref and returns the updated value.
Attributes
Atomically decrements the current value of the Ref by 1 and returns the updated value.
Atomically decrements the current value of the Ref by 1 and returns the updated value.
Attributes
Atomically adds delta to the current value of the Ref, returning the value immediately before modification.
Atomically adds delta to the current value of the Ref, returning the value immediately before modification.
Attributes
Atomically decrements the current value of the Ref by 1, returning the value immediately before modification.
Atomically decrements the current value of the Ref by 1, returning the value immediately before modification.
Attributes
Atomically increments the current value of the Ref by 1, returning the value immediately before modification.
Atomically increments the current value of the Ref by 1, returning the value immediately before modification.
Attributes
Atomically writes the specified value to the Ref, returning the value immediately before modification.
Atomically writes the specified value to the Ref, returning the value immediately before modification.
Attributes
Atomically modifies the Ref with the specified function, returning the value immediately before modification.
Atomically modifies the Ref with the specified function, returning the value immediately before modification.
Attributes
Atomically modifies the Ref with the specified partial function, returning the value immediately before modification. If the function is undefined on the current value it doesn't change it.
Atomically modifies the Ref with the specified partial function, returning the value immediately before modification. If the function is undefined on the current value it doesn't change it.
Attributes
Atomically increments the current value of the Ref by 1 and returns the updated value.
Atomically increments the current value of the Ref by 1 and returns the updated value.
Attributes
Atomically modifies the Ref with the specified partial function, which computes a return value for the modification if the function is defined on the current value otherwise it returns a default value. This is a more powerful version of updateSome.
Atomically modifies the Ref with the specified partial function, which computes a return value for the modification if the function is defined on the current value otherwise it returns a default value. This is a more powerful version of updateSome.
Attributes
Atomically modifies the Ref with the specified function.
Atomically modifies the Ref with the specified function.
Attributes
Atomically modifies the Ref with the specified function and returns the updated value.
Atomically modifies the Ref with the specified function and returns the updated value.
Attributes
Atomically modifies the Ref with the specified partial function. If the function is undefined on the current value it doesn't change it.
Atomically modifies the Ref with the specified partial function. If the function is undefined on the current value it doesn't change it.
Attributes
Atomically modifies the Ref with the specified partial function. If the function is undefined on the current value it returns the old value without changing it.
Atomically modifies the Ref with the specified partial function. If the function is undefined on the current value it returns the old value without changing it.