package impl
- Alphabetic
- Public
- All
Type Members
-
trait
RefFactory extends AnyRef
RefFactoryis responsible for creating concreteRefinstances. -
trait
STMImpl extends RefFactory with TxnContext with TxnExecutor
STMImplgathers all of the functionality required to plug an STM implementation intoscala.concurrent.stm.STMImplgathers all of the functionality required to plug an STM implementation intoscala.concurrent.stm. See theSTMImplcompanion object for information on controlling whichSTMImplis selected at run time. -
trait
TxnContext extends AnyRef
TxnContextcaptures the implementation-specific functionality of locating theInTxndynamically bound to the currentThread.TxnContextcaptures the implementation-specific functionality of locating theInTxndynamically bound to the currentThread. Users should use the lookup methods provided byobject Txn.
Value Members
-
object
STMImpl
STMImplgathers all of the functionality required to plug an STM implementation intoscala.concurrent.stm.STMImplgathers all of the functionality required to plug an STM implementation intoscala.concurrent.stm. Only one implementation can be selected, becauseRefs and atomic blocks from different STM implementations are not compatible.STMImpl.instancereturns theSTMImplinstance that has been selected for this program execution.There are two ways to explicitly select the
STMImplinstance:- set the JVM system property "scala.stm.impl" to the name of a class
that implements
STMImpl; or
2. arrange for
STMImpl.selectorSTMImpl.trySelectto be called before anyRefs are constructed and before any atomic blocks are executed.Setting the JVM system property "scala.stm.impl" is equivalent to making a call to
STMImpl.select(System.getProperty("scala.stm.impl"))before any otherSTMImplselections.If there is no explicitly selected
STMImplinstance and the classpath contains a classscala.concurrent.stm.impl.DefaultFactorythat extendsscala.concurrent.stm.impl.STMImpl.Factory, then an instance of that class will be instantiated and used to generate theSTMImplinstance. ScalaSTM implementations are encouraged to implementDefaultFactoryso that if a user includes the implementation's JAR file, it will be automatically selected.If no explicit selection has been made and there is no definition of
scala.concurrent.stm.impl.DefaultFactorypresent in the classpath, then ScalaSTM will fall back to the reference implementation "scala.concurrent.stm.ccstm.CCSTM". - set the JVM system property "scala.stm.impl" to the name of a class
that implements