Packages

c

scala.concurrent.stm.Txn

OptimisticFailureCause

case class OptimisticFailureCause(category: Symbol, trigger: Option[Any]) extends TransientRollbackCause with Product with Serializable

The RollbackCause for a NestingLevel whose optimistic execution was invalid, and that should be retried. The specific situations in which an optimistic failure can occur are specific to the STM algorithm, but may include:

  • the STM detected that the value returned by a previous read in this nesting level is no longer valid;
  • a cyclic dependency has occurred and this nesting level must be rolled back to avoid deadlock;
  • a transaction with a higher priority wanted to write to a Ref written by this transaction;
  • the STM decided to switch execution strategies for this atomic block; or
  • no apparent reason (*).

(*) - Some STMs perform validation, conflict detection and deadlock cycle breaking using algorithms that are conservative approximations. This means that any particular attempt to execute an atomic block might fail spuriously.

category

an STM-specific label for the reason behind this optimistic failure. The set of possible categories is bounded.

trigger

the specific object that led to the optimistic failure, if it is available, otherwise None.

Linear Supertypes
Serializable, java.io.Serializable, Product, Equals, TransientRollbackCause, RollbackCause, AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. OptimisticFailureCause
  2. Serializable
  3. Serializable
  4. Product
  5. Equals
  6. TransientRollbackCause
  7. RollbackCause
  8. AnyRef
  9. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Instance Constructors

  1. new OptimisticFailureCause(category: Symbol, trigger: Option[Any])

    category

    an STM-specific label for the reason behind this optimistic failure. The set of possible categories is bounded.

    trigger

    the specific object that led to the optimistic failure, if it is available, otherwise None.

Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  5. val category: Symbol
  6. def clone(): AnyRef
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  7. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  8. def finalize(): Unit
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  9. final def getClass(): Class[_]
    Definition Classes
    AnyRef → Any
  10. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  11. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  12. final def notify(): Unit
    Definition Classes
    AnyRef
  13. final def notifyAll(): Unit
    Definition Classes
    AnyRef
  14. final def synchronized[T0](arg0: ⇒ T0): T0
    Definition Classes
    AnyRef
  15. val trigger: Option[Any]
  16. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  17. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  18. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )

Inherited from Serializable

Inherited from java.io.Serializable

Inherited from Product

Inherited from Equals

Inherited from TransientRollbackCause

Inherited from RollbackCause

Inherited from AnyRef

Inherited from Any

Ungrouped