Trait

rescala.scheduler.Twoversion

TwoVersionScheduler

Related Doc: package Twoversion

Permalink

trait TwoVersionScheduler[Tx <: TwoVersionTransaction] extends SchedulerImpl[State, Tx]

Implementation of the turn handling defined in the Engine trait

Tx

Transaction type used by the scheduler

Linear Supertypes
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. TwoVersionScheduler
  2. SchedulerImpl
  3. Scheduler
  4. DynamicScope
  5. AnyRef
  6. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Abstract Value Members

  1. abstract def makeTransaction(priorTx: Option[Tx]): Tx

    Permalink
    Attributes
    protected
  2. abstract def schedulerName: String

    Permalink

    Name of the scheduler, used for helpful error messages.

    Name of the scheduler, used for helpful error messages.

    Definition Classes
    Scheduler

Concrete Value Members

  1. final def !=(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  4. final val _currentTransaction: DynamicVariable[Option[Tx]]

    Permalink
    Attributes
    protected
    Definition Classes
    SchedulerImpl
  5. final def asInstanceOf[T0]: T0

    Permalink
    Definition Classes
    Any
  6. def clone(): AnyRef

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @IntrinsicCandidate() @throws( ... )
  7. final def eq(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  8. def equals(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  9. def forceNewTransaction[R](initialWrites: Set[of[State]], admissionPhase: (AdmissionTicket[State]) ⇒ R): R

    Permalink

    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
    TwoVersionSchedulerScheduler
  10. final def forceNewTransaction[R](initialWrites: of[State]*)(admissionPhase: (AdmissionTicket[State]) ⇒ R): R

    Permalink
    Definition Classes
    Scheduler
  11. final def getClass(): Class[_]

    Permalink
    Definition Classes
    AnyRef → Any
    Annotations
    @IntrinsicCandidate()
  12. def hashCode(): Int

    Permalink
    Definition Classes
    AnyRef → Any
    Annotations
    @IntrinsicCandidate()
  13. final def isInstanceOf[T0]: Boolean

    Permalink
    Definition Classes
    Any
  14. final def maybeTransaction: Option[of[State]]

    Permalink
    Definition Classes
    SchedulerImplSchedulerDynamicScope
  15. final def ne(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  16. final def notify(): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @IntrinsicCandidate()
  17. final def notifyAll(): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @IntrinsicCandidate()
  18. final def synchronized[T0](arg0: ⇒ T0): T0

    Permalink
    Definition Classes
    AnyRef
  19. def toString(): String

    Permalink
    Definition Classes
    Scheduler → AnyRef → Any
  20. final def wait(arg0: Long, arg1: Int): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  21. final def wait(arg0: Long): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  22. final def wait(): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )

Deprecated Value Members

  1. def finalize(): Unit

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @Deprecated @deprecated @throws( classOf[java.lang.Throwable] )
    Deprecated

    (Since version ) see corresponding Javadoc for more information.

Inherited from SchedulerImpl[State, Tx]

Inherited from Scheduler[State]

Inherited from DynamicScope[State]

Inherited from AnyRef

Inherited from Any

Ungrouped