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
.
- Alphabetic
- By Inheritance
- OptimisticFailureCause
- Serializable
- Product
- Equals
- TransientRollbackCause
- RollbackCause
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Instance Constructors
- 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
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##: Int
- Definition Classes
- AnyRef → Any
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- val category: Symbol
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native() @HotSpotIntrinsicCandidate()
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- def productElementNames: Iterator[String]
- Definition Classes
- Product
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- val trigger: Option[Any]
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
Deprecated Value Members
- def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable]) @Deprecated
- Deprecated