trait TwoVersionScheduler[Tx <: TwoVersionTransaction] extends SchedulerImpl[Tx]
Implementation of the turn handling defined in the Engine trait
- Tx
Transaction type used by the scheduler
Linear Supertypes
Ordering
- Alphabetic
- By Inheritance
Inherited
- TwoVersionScheduler
- SchedulerImpl
- Scheduler
- DynamicScope
- AnyRef
- Any
- Hide All
- Show All
Visibility
- Public
- Protected
Abstract Value Members
Concrete 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 val _currentTransaction: DynamicVariable[Option[Tx]]
- Attributes
- protected
- Definition Classes
- SchedulerImpl
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native() @IntrinsicCandidate()
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- def forceNewTransaction[R](initialWrites: Set[Twoversion.ReSource], admissionPhase: (Twoversion.AdmissionTicket) => R): R
goes through the whole turn lifecycle - create a new turn and put it on the stack - run the lock phase
goes through the whole turn lifecycle - create a new turn and put it on the stack - run the lock phase
- the turn knows which reactives will be affected and can do something before anything is really done
- run the admission phase
- executes the user defined admission code
- run the propagation phase
- calculate the actual new value of the reactive graph
- run the commit phase
- do cleanups on the reactives, make values permanent and so on, the turn is still valid during this phase
- run the observer phase
- run registered observers, the turn is no longer valid but the locks are still held.
- run the release phase
- this must always run, even in the case that something above fails. it should do cleanup and free any locks to avoid starvation.
- run the party! phase
- not yet implemented
- Definition Classes
- TwoVersionScheduler → Scheduler
- the turn knows which reactives will be affected and can do something before anything is really done
- final def forceNewTransaction[R](initialWrites: Twoversion.ReSource*)(admissionPhase: (Twoversion.AdmissionTicket) => R): R
- Definition Classes
- Scheduler
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @IntrinsicCandidate()
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @IntrinsicCandidate()
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- final def maybeTransaction: Option[Twoversion.Transaction]
- Definition Classes
- SchedulerImpl → Scheduler → DynamicScope
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @IntrinsicCandidate()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @IntrinsicCandidate()
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toString(): String
- Definition Classes
- Scheduler → AnyRef → Any
- 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])
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])