trait View[+A] extends TxnDebuggable
Source.View[+A]
consists of the covariant read-only operations of
Ref.View[A]
.
- Alphabetic
- By Inheritance
- View
- TxnDebuggable
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Abstract Value Members
-
abstract
def
await(f: (A) ⇒ Boolean): Unit
Blocks until
f(get)
is true, in a manner consistent with the current context.Blocks until
f(get)
is true, in a manner consistent with the current context. Requires that the predicate be safe to reevaluate, and thatf(x) == f(y)
ifx == y
.v.await(f)
is equivalent toatomic { implicit t => if (!f(v.get)) retry }
If you want to wait for a predicate that involves more than one
Ref
then useretry
directly.- f
a predicate that is safe to evaluate multiple times.
-
abstract
def
get: A
Performs an atomic read; equivalent to
apply()
.Performs an atomic read; equivalent to
apply()
.- returns
the value of the
Ref
as observed by the current context.
-
abstract
def
getWith[Z](f: (A) ⇒ Z): Z
Acts like
ref.getWith(f)
if there is an active transaction, otherwise just returnsf(get)
.Acts like
ref.getWith(f)
if there is an active transaction, otherwise just returnsf(get)
.- f
an idempotent function.
- returns
the result of applying
f
to the value contained inref
.
-
abstract
def
ref: Source[A]
Returns a
Source
that accesses the same memory location as this view.Returns a
Source
that accesses the same memory location as this view. The returnedSource
might be the original reference that was used to construct this view, or it might be aSource
that is equivalent (and==
) to the original.- returns
a
Source
that accesses the same memory location as this view.
-
abstract
def
relaxedGet(equiv: (A, A) ⇒ Boolean): A
Acts like
ref.relaxedGet(equiv)
if there is an active transaction, otherwise just returnsget
.Acts like
ref.relaxedGet(equiv)
if there is an active transaction, otherwise just returnsget
.- equiv
an equivalence function that returns true if a transaction that observed the first argument will still complete correctly, where the second argument is the actual value that should have been observed.
- returns
a value of the
Ref
, not necessary consistent with the rest of the reads performed by the active transaction, if any.
-
abstract
def
tryAwait(timeout: Long, unit: TimeUnit = TimeUnit.MILLISECONDS)(f: (A) ⇒ Boolean): Boolean
Blocks until
f(get)
is true and returns true, or returns false if the condition does not become true within within the specified timeout.Blocks until
f(get)
is true and returns true, or returns false if the condition does not become true within within the specified timeout.v.tryAwait(timeout)(f)
is equivalent toatomic { implicit t => f(v.get) || { retryFor(timeout) ; false } }
- timeout
the maximum amount of time to wait, in units of
unit
.- unit
the units in which the timeout is measured, defaulting to milliseconds.
- f
a predicate that is safe to evaluate multiple times.
- returns
true if the predicate was satisfied, false if the wait timed out.
Concrete 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
-
def
apply(): A
Performs an atomic read of the value in
ref
.Performs an atomic read of the value in
ref
. If an atomic block is active (seeTxn.findCurrent
) then the read will be performed as part of the transaction, otherwise it will act as if it was performed inside a new atomic block. Equivalent toget
.- returns
the value of the
Ref
as observed by the current context.
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
-
def
clone(): AnyRef
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
def
dbgStr: String
Returns a string representation of the transactional value in this instance for debugging convenience.
Returns a string representation of the transactional value in this instance for debugging convenience. The
Ref
reads (and writes) performed while constructing the result will be discarded before returning. This method works fine outside a transaction.If this method is called from within a transaction that is already doomed (status
Txn.Rolledback
), a string describing the reason for the outer transaction's rollback will be returned.- Definition Classes
- View → TxnDebuggable
-
def
dbgValue: Any
Returns some value that is suitable for examination in a debugger, or returns a
Txn.RollbackCause
if called from inside a doomed atomic block.Returns some value that is suitable for examination in a debugger, or returns a
Txn.RollbackCause
if called from inside a doomed atomic block.- Definition Classes
- View → TxnDebuggable
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
equals(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
def
finalize(): Unit
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( classOf[java.lang.Throwable] )
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
-
def
hashCode(): Int
- 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
-
def
toString(): String
- Definition Classes
- AnyRef → 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( ... )