Returns the instance of STMImpl that should be used to implement all
ScalaSTM functionality.
Returns the instance of STMImpl that should be used to implement all
ScalaSTM functionality. Calling this method forces the implementation
to be chosen if it has not already been selected.
Installs impl as the system-wide STM implementation if no STMImpl
has yet been chosen, or verifies that impl is equal to the previously
selected instance, throwing IllegalStateException if an STM
implementation has already been selected and impl != instance
Installs Class.forName(implClassName) as the system-wide STM
implementation if no STMImpl has yet been chosen, or verifies that
implClassName was previously selected, throwing
IllegalStateException if a different STM implementation has already
been selected
If no STMImpl instance has yet been selected, installs an instance of
Class.forName(implClassName) as the system-wide STM implementation.
If no STMImpl instance has yet been selected, installs an instance of
Class.forName(implClassName) as the system-wide STM implementation.
Returns true if implClassName was newly or previously selected, or
returns false if another STM implementation was chosen.
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:STMImpl; or2. 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".