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
- Serializable
- Product
- Equals
- TransientRollbackCause
- RollbackCause
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
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[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
finalize(): Unit
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( classOf[java.lang.Throwable] )
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
-
final
def
ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
final
def
notify(): Unit
- Definition Classes
- AnyRef
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
- val trigger: Option[Any]
-
final
def
wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )