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
Value members
Abstract methods
Returns the TxnExecutor
in which this attempt is executing.
Returns the TxnExecutor
in which this attempt is executing.
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.