trait Member extends AnyRef
A participant in a synchronized group commit. Each member of a commit
barrier must arrange for either atomic or cancel to be called,
otherwise the other members won't be able to commit.
- Alphabetic
- By Inheritance
- Member
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Abstract Value Members
- abstract def atomic[Z](body: (InTxn) => Z): Either[CancelCause, Z]
Atomically executes
bodyas part of a commit barrier, ensuring that if the transaction commits, all actions performed by all members of the commit barrier appear to occur simultaneously.Atomically executes
bodyas part of a commit barrier, ensuring that if the transaction commits, all actions performed by all members of the commit barrier appear to occur simultaneously. If the transaction commits then the valuevreturned bybodyis returned asRight(v). If this member is cancelled then this method returnsLeft(c), wherecdescribes the first cause passed to thecancelmethod. If this member is not cancelled but the transaction is rolled back without the possibility of retry, then this method throws an exception the same as any other atomic block (seeTxnExecutor.apply).It is not allowed to chain
orAtomiconto this form ofatomic, but you can accomplish the same effect with a nested atomic block:member.atomic { implicit txn => atomic { implicit txn => ... first alternative } orAtomic { implicit txn => ... second alternative } }In the current version of ScalaSTM this method may only be used if there is no enclosing transaction; an STM implementation may throw
IllegalStateExceptionif there is already an active transaction on this thread. This restriction might be relaxed in the future if there is a use case for it (and a semantics for how it should work).- body
the code to run atomically
- returns
Right(v)wherevis the result of successfully runningbodyin an atomic block, orLeft(c)wherecis the reason for this member's cancellation
- Exceptions thrown
IllegalStateExceptionif called from inside the dynamic scope of an existing transaction and that is not supported by the chosen STM implementation
- abstract def cancel(cause: UserCancel): Unit
Removes this member from the commit barrier, and causes any pending or future calls to
this.atomicto return aLeft.Removes this member from the commit barrier, and causes any pending or future calls to
this.atomicto return aLeft. If the commit barrier has already committed successfully this method throwsIllegalStateException. It is safe to call this method multiple times.- cause
the cancel cause to return from
atomic
- Exceptions thrown
IllegalStateExceptionif the commit barrier has already decided to commit
- abstract def commitBarrier: CommitBarrier
Returns the commit barrier of which this instance is a member.
- abstract def executor: TxnExecutor
Returns the
TxnExecutorthat will be used byatomic.Returns the
TxnExecutorthat will be used byatomic. This is initialized during construction to the defaultTxnExecutor(returned byscala.concurrent.stm.atomic). - abstract def executor_=(v: TxnExecutor): Unit
Changes the
TxnExecutorthat will be used byatomic.
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
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- 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
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- def hashCode(): Int
- 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()
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toString(): String
- Definition Classes
- AnyRef → 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