scala.concurrent.stm

Source

trait Source[+A] extends SourceLike[A, InTxn] with TxnDebuggable

Source[+A] consists of the covariant read-only operations of Ref[A].

Linear Supertypes
Known Subclasses
Ordering
  1. Alphabetic
  2. By inheritance
Inherited
  1. Source
  2. TxnDebuggable
  3. SourceLike
  4. AnyRef
  5. Any
  1. Hide All
  2. Show all
Learn more about member selection
Visibility
  1. Public
  2. All

Abstract Value Members

  1. abstract def get(implicit txn: InTxn): A

    Performs a transactional read and checks that it is consistent with all reads already made by txn.

    Performs a transactional read and checks that it is consistent with all reads already made by txn. Equivalent to apply(), which is more concise in many situations.

    txn

    an active transaction.

    returns

    the value of the Ref as observed by txn.

    Definition Classes
    SourceLike
    Exceptions thrown
    IllegalStateException

    if txn is not active.

  2. abstract def getWith[Z](f: (A) ⇒ Z)(implicit txn: InTxn): Z

    Returns f(get), possibly reevaluating f to avoid rollback if a conflicting change is made but the old and new values are equal after application of f.

    Returns f(get), possibly reevaluating f to avoid rollback if a conflicting change is made but the old and new values are equal after application of f. Requires that f(x) == f(y) if x == y.

    getWith(f) is equivalent to f(relaxedGet({ f(_) == f(_) })), although perhaps more efficient.

    f

    an idempotent function.

    returns

    the result of applying f to the value contained in this Ref.

    Definition Classes
    SourceLike
  3. abstract def relaxedGet(equiv: (A, A) ⇒ Boolean)(implicit txn: InTxn): A

    Returns the same value as get, but allows the caller to determine whether txn should be rolled back if another thread changes the value of this Ref before txn is committed.

    Returns the same value as get, but allows the caller to determine whether txn should be rolled back if another thread changes the value of this Ref before txn is committed. If ref.relaxedGet(equiv) returns v0 in txn, another context changes ref to v1, and equiv(v0, v1) == true, then txn won't be required to roll back (at least not due to this read). If additional changes are made to ref additional calls to the equivalence function will be made, always with v0 as the first parameter.

    equiv will always be invoked on the current thread. Extreme care should be taken if the equivalence function accesses any Refs.

    As an example, to perform a read that will not be validated during commit you can use the maximally permissive equivalence function:

    val unvalidatedValue = ref.relaxedGet({ (_, _) => true })

    To check view serializability rather than conflict serializability for a read:

    val viewSerializableValue = ref.relaxedGet({ _ == _ })

    The getWith method provides related functionality.

    equiv

    an equivalence function that returns true if a transaction that observed the first argument will still complete correctly, where the second argument is the actual value that should have been observed.

    returns

    a value of the Ref, not necessary consistent with the rest of the reads performed by txn.

    Definition Classes
    SourceLike
  4. abstract def single: View[A]

    See Ref.single.

Concrete Value Members

  1. final def !=(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  2. final def !=(arg0: Any): Boolean

    Definition Classes
    Any
  3. final def ##(): Int

    Definition Classes
    AnyRef → Any
  4. final def ==(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  5. final def ==(arg0: Any): Boolean

    Definition Classes
    Any
  6. def apply()(implicit txn: InTxn): A

    Performs a transactional read and checks that it is consistent with all reads already made by txn.

    Performs a transactional read and checks that it is consistent with all reads already made by txn. Equivalent to get.

    Example:

    val x = Ref(0)
    atomic { implicit t =>
      ...
      val v = x() // perform a read inside a transaction
      ...
    }
    txn

    an active transaction.

    returns

    the value of the Ref as observed by txn.

    Definition Classes
    SourceLike
    Exceptions thrown
    IllegalStateException

    if txn is not active.

  7. final def asInstanceOf[T0]: T0

    Definition Classes
    Any
  8. def clone(): AnyRef

    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  9. def dbgStr: String

    Returns a string representation of the transactional value in this instance for debugging convenience.

    Returns a string representation of the transactional value in this instance for debugging convenience. The Ref reads (and writes) performed while constructing the result will be discarded before returning. This method works fine outside a transaction.

    If this method is called from within a transaction that is already doomed (status Txn.Rolledback), a string describing the reason for the outer transaction's rollback will be returned.

    Definition Classes
    SourceTxnDebuggable
  10. def dbgValue: Any

    Returns some value that is suitable for examination in a debugger, or returns a Txn.RollbackCause if called from inside a doomed atomic block.

    Returns some value that is suitable for examination in a debugger, or returns a Txn.RollbackCause if called from inside a doomed atomic block.

    Definition Classes
    SourceTxnDebuggable
  11. final def eq(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  12. def equals(arg0: Any): Boolean

    Definition Classes
    AnyRef → Any
  13. def finalize(): Unit

    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  14. final def getClass(): Class[_]

    Definition Classes
    AnyRef → Any
  15. def hashCode(): Int

    Definition Classes
    AnyRef → Any
  16. final def isInstanceOf[T0]: Boolean

    Definition Classes
    Any
  17. final def ne(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  18. final def notify(): Unit

    Definition Classes
    AnyRef
  19. final def notifyAll(): Unit

    Definition Classes
    AnyRef
  20. final def synchronized[T0](arg0: ⇒ T0): T0

    Definition Classes
    AnyRef
  21. def toString(): String

    Definition Classes
    AnyRef → Any
  22. final def wait(): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  23. final def wait(arg0: Long, arg1: Int): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  24. final def wait(arg0: Long): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )

Inherited from TxnDebuggable

Inherited from SourceLike[A, InTxn]

Inherited from AnyRef

Inherited from Any

Ungrouped