object STMImpl extends STMSelector
STMImpl gathers all of the functionality required to plug an STM
implementation into scala.concurrent.stm. Only one implementation can
be selected, because Refs and atomic blocks from different STM
implementations are not compatible. STMImpl.instance returns the
STMImpl instance that has been selected for this program execution.
There are two ways to explicitly select the STMImpl instance:
- set the JVM system property "scala.stm.impl" to the name of a class
that implements
STMImpl; or
2. arrange for STMImpl.select or STMImpl.trySelect to be called
before any Refs 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
other STMImpl selections.
If there is no explicitly selected STMImpl instance and the classpath
contains a class scala.concurrent.stm.impl.DefaultFactory that extends
scala.concurrent.stm.impl.STMImpl.Factory, then an instance of that
class will be instantiated and used to generate the STMImpl instance.
ScalaSTM implementations are encouraged to implement DefaultFactory so
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.DefaultFactory present in the classpath, then
ScalaSTM will fall back to the reference implementation
"scala.concurrent.stm.ccstm.CCSTM".
- Alphabetic
- By Inheritance
- STMImpl
- STMSelector
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
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()
- def instance: STMImpl
Returns the instance of
STMImplthat should be used to implement all ScalaSTM functionality.Returns the instance of
STMImplthat should be used to implement all ScalaSTM functionality. Calling this method forces the implementation to be chosen if it has not already been selected. - 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()
- def select(impl: STMImpl): Unit
Installs
implas the system-wide STM implementation if noSTMImplhas yet been chosen, or verifies thatimplis equal to the previously selected instance, throwingIllegalStateExceptionif an STM implementation has already been selected andimpl != instanceInstalls
implas the system-wide STM implementation if noSTMImplhas yet been chosen, or verifies thatimplis equal to the previously selected instance, throwingIllegalStateExceptionif an STM implementation has already been selected andimpl != instance- Definition Classes
- STMSelector
- def select(implClassName: String): Unit
Installs
Class.forName(implClassName)as the system-wide STM implementation if noSTMImplhas yet been chosen, or verifies thatimplClassNamewas previously selected, throwingIllegalStateExceptionif a different STM implementation has already been selectedInstalls
Class.forName(implClassName)as the system-wide STM implementation if noSTMImplhas yet been chosen, or verifies thatimplClassNamewas previously selected, throwingIllegalStateExceptionif a different STM implementation has already been selected- Definition Classes
- STMSelector
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toString(): String
- Definition Classes
- AnyRef → Any
- def trySelect(implClassName: String): Boolean
If no
STMImplinstance has yet been selected, installs an instance ofClass.forName(implClassName)as the system-wide STM implementation.If no
STMImplinstance has yet been selected, installs an instance ofClass.forName(implClassName)as the system-wide STM implementation. Returns true ifimplClassNamewas newly or previously selected, or returns false if another STM implementation was chosen.- Definition Classes
- STMSelector
- 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