package execution

  1. Alphabetic
  1. Public
  2. All

Type Members

  1. class AkkaExecActor extends AkkaExecutorActor
  2. class AkkaExecutor extends ProcessExecutor[UUID] with AkkaPiObservable[UUID]
  3. trait AkkaExecutorActor extends Actor with AkkaPiStream[UUID]
  4. class CASExecutor extends ProcessExecutor[UUID] with SimplePiObservable[UUID]

    A multi-state Compare-And-Swap ProcessExecutor.

    A multi-state Compare-And-Swap ProcessExecutor.

    Uses a ConcurrentHashMap to store states in a thread-safe way.

    Updates states using compare-and-swap for a finite number of attempts. This is to avoid the situation of multiple asynchronous atomic processes posting their results on the same state at the same time.

  5. class MutexExecutor extends ProcessExecutor[Int] with SimplePiObservable[Int]

    A multi-state mutex-based ProcessExecutor.

    A multi-state mutex-based ProcessExecutor.

    Uses this.synchronized to create mutexes for safe access when adding/removing/updating states.

  6. trait ProcessExecutor[KeyT] extends AnyRef

    Trait representing the ability to execute any PiProcess

  7. case class SingleBlockingExecutor()(implicit context: ExecutionContext) extends Product with Serializable

    SingleBlockingExecutor fully executes one PiProcess from a map of given PiProcesses.

    SingleBlockingExecutor fully executes one PiProcess from a map of given PiProcesses. It blocks waiting for every atomic call to finish, so has no concurrency.

  8. class SingleStateExecutor extends ProcessExecutor[Int] with SimplePiObservable[Int]

    Executes any PiProcess asynchronously.

    Executes any PiProcess asynchronously. Only holds a single state, so can only execute one workflow at a time.

    Running a second workflow after one has finished executing can be risky because promises/futures from the first workflow can trigger changes on the state!

  9. case class AtomicProcessExecutor(process: AtomicProcess) extends Product with Serializable

    Executes an atomic process - blocking

    Executes an atomic process - blocking

    Built before the normal executors and kept around for testing.


Value Members

  1. object AkkaExecutor
  2. object CASExecutor
  3. object ProcessExecutor