object STMImpl
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
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
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[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
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
-
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
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
-
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 != instance -
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 selected -
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. -
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( ... )