trait SequenceHelper extends AnyRef
A collection of helper functions to compose a preemptable-sequence
- Alphabetic
- By Inheritance
- SequenceHelper
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Abstract Value Members
- abstract def go[T](body: => T): Future[T]
Wrap a CBN (lazy) synchronous function in a Future, which is only started if the PreemptableSequence is not yet aborted/shut down.
Wrap a CBN (lazy) synchronous function in a Future, which is only started if the PreemptableSequence is not yet aborted/shut down.
- body
The lazy synchronous body
- returns
the wrapped future
- abstract def goF[T](f: => Future[T]): Future[T]
Wrap a CBN (lazy) Future, so it is only started if the PreemptableSequence is not yet aborted/shut down.
Wrap a CBN (lazy) Future, so it is only started if the PreemptableSequence is not yet aborted/shut down.
- f
The lazy Future
- returns
the wrapped future
- abstract def handle: Handle
The handle of the PreemptableSequence.
The handle of the PreemptableSequence. This handle is available for sequence construction as well.
- returns
the Handle
- abstract def merge(handle: Handle): Future[Unit]
Delegate the preemptable-future sequence to another Handle - the completion Future future of the PreemptableSequence will only finish after this Handle finishes, and previously registered release functions all completed - KillSwitch events will be replayed to this handle - In case of abort/shutdown the PreemptableSequence's completion result will conform to the KillSwitch usage, not to the completion of this handle (although it will wait for it naturally)
Delegate the preemptable-future sequence to another Handle - the completion Future future of the PreemptableSequence will only finish after this Handle finishes, and previously registered release functions all completed - KillSwitch events will be replayed to this handle - In case of abort/shutdown the PreemptableSequence's completion result will conform to the KillSwitch usage, not to the completion of this handle (although it will wait for it naturally)
- handle
The handle to delegate to
- returns
the completion of the Handle
- abstract def registerRelease(release: => Unit): Unit
Register at any point in time a synchronous release function, which will be ensured to run before the completion future of the handle completes.
Register at any point in time a synchronous release function, which will be ensured to run before the completion future of the handle completes.
- release
the release lambda
- abstract def retry[T](waitMillisBetweenRetries: Long, maxAmountOfRetries: Long = -1, retryable: (Throwable) => Boolean = _ => true)(body: => T): Future[T]
Wrap a synchronous call into a Future sequence, which - will be preemptable - will retry to execute the body if Exception-s thrown, and the exception is retryable
Wrap a synchronous call into a Future sequence, which - will be preemptable - will retry to execute the body if Exception-s thrown, and the exception is retryable
- returns
the preemptable, retrying Future sequence
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 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
- 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 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
- 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]) @native()
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])