Packages

package fuzzer

Ordering
  1. Alphabetic
Visibility
  1. Public
  2. All

Type Members

  1. class AtomicBarrier extends AnyRef

    An atomic barrier is similar to a countdown latch, except that the content is a state transition system with semantic meaning instead of a simple counter.

    An atomic barrier is similar to a countdown latch, except that the content is a state transition system with semantic meaning instead of a simple counter.

    It is designed with a single writer ("unblocker") thread and a single reader ("waiter") thread in mind. It is concurrency safe with more writers and readers, but using more is likely to cause race conditions for legal transitions. That is to say, trying to perform an otherwise legal transition twice is illegal and may occur if there is more than one unblocker or waiter thread. Having additional passive state observers that only call load() is never an issue.

    Legal transitions are: - BLOCKED -> UNBLOCKED - BLOCKED -> REQUESTED - REQUESTED -> UNBLOCKED - UNBLOCKED -> PASSED

  2. case class ExecutionPhaseLock(name: String, entryBarrier: AtomicBarrier = new AtomicBarrier(), exitBarrier: AtomicBarrier = new AtomicBarrier()) extends Product with Serializable

    An ExecutionPhaseLock is an abstraction to keep multiple transactions moving in a pre-selected lock-step sequence.

    An ExecutionPhaseLock is an abstraction to keep multiple transactions moving in a pre-selected lock-step sequence.

    In order to pass a phase, we first wait on the entryBarrier. Once we are allowed to pass there, we can execute the code that belongs to this phase, and then we unblock the exitBarrier.

    name

    human readable name for debugging

  3. class IllegalStateTransitionException extends RuntimeException
  4. case class OptimisticTransactionPhases(initialPhase: ExecutionPhaseLock, preparePhase: ExecutionPhaseLock, commitPhase: ExecutionPhaseLock, backfillPhase: ExecutionPhaseLock, postCommitPhase: ExecutionPhaseLock) extends Product with Serializable
  5. trait PhaseLockingExecutionObserver extends AnyRef

    Trait representing execution observers that rely on phases with entry and exit barriers to control the order of execution of the observed code paths.

    Trait representing execution observers that rely on phases with entry and exit barriers to control the order of execution of the observed code paths. See ExecutionPhaseLock.

Value Members

  1. object AtomicBarrier
  2. object OptimisticTransactionPhases extends Serializable

Ungrouped