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 Ref
s 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 Ref
s 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
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. -
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
impl
as the system-wide STM implementation if noSTMImpl
has yet been chosen, or verifies thatimpl
is equal to the previously selected instance, throwingIllegalStateException
if 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 noSTMImpl
has yet been chosen, or verifies thatimplClassName
was previously selected, throwingIllegalStateException
if 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
STMImpl
instance has yet been selected, installs an instance ofClass.forName(implClassName)
as the system-wide STM implementation.If no
STMImpl
instance has yet been selected, installs an instance ofClass.forName(implClassName)
as the system-wide STM implementation. Returns true ifimplClassName
was 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( ... )