NestingLevel

A NestingLevel instance describes a single attempt to execute an atomic block inside a transaction. Reads and writes performed by a transaction will only be made visible to other threads after (if) the root nesting level commits.

A NestingLevel instance describes a single attempt to execute an atomic block inside a transaction. Reads and writes performed by a transaction will only be made visible to other threads after (if) the root nesting level commits.

Methods on this class may be called from any thread, and may be called after the corresponding execution attempt has been completed.

Authors

Nathan Bronson

Companion
object
class Object
trait Matchable
class Any

Value members

Abstract methods

Returns the TxnExecutor in which this attempt is executing.

Returns the TxnExecutor in which this attempt is executing.

def parent: Option[NestingLevel]

Returns the nearest enclosing nesting level, if any.

Returns the nearest enclosing nesting level, if any.

Requests that a transaction attempt be marked for rollback, possibly also rolling back some or all of the enclosing nesting levels. Returns the resulting status, which will be one of Prepared, Committed or RolledBack. Regardless of the status, this method does not throw an exception.

Requests that a transaction attempt be marked for rollback, possibly also rolling back some or all of the enclosing nesting levels. Returns the resulting status, which will be one of Prepared, Committed or RolledBack. Regardless of the status, this method does not throw an exception.

Unlike Txn.rollback(cause), this method may be called from any thread. Note that there is no facility for remotely triggering a rollback during the Prepared state, as the ExplicitDecider is given the final choice.

Returns the outermost enclosing nested transaction context, or this instance if it is the outermost nesting level. It is always true that a.parent.isEmpty == (a.root == a).

Returns the outermost enclosing nested transaction context, or this instance if it is the outermost nesting level. It is always true that a.parent.isEmpty == (a.root == a).

Returns a snapshot of this nesting level's current status. The status may change to Txn.RolledBack due to the actions of a concurrent thread. This method may be called from any thread.

Returns a snapshot of this nesting level's current status. The status may change to Txn.RolledBack due to the actions of a concurrent thread. This method may be called from any thread.