Package swim.concurrent
Timers
A TimerFunction
represents a function to invoke at a scheduled
time. Scheduling a timer yields a TimerRef
, which can be used to
check the status of the timer, to reschedule it, and to cancel it. A Timer
represents a stateful TimerFunction
, with lifecycle callbacks,
and a TimerContext
that enables self-management.
Tasks
A TaskFunction
represents a function to invoke as a sequential
process in a concurrent environment. Registering a task yields a TaskRef
, which is used to cue the task for execution. A Task
represents a stateful TaskFunction
, with lifecycle callbacks, and a
TaskContext
that enables self-management. A Task
is like a
primitive actor that
lacks a builtin mailbox.
Cont
A Cont
represents the continuation of an asynchronous operation.
Cont
has factory functions to construct various Cont
inuation
combinators. Sync
implements a synchronous Cont
inuation that
continues the current thread of execution after an asynchronous operation
completes.
Calls
A Call
provides a handle used to eventually complete an
asynchronous operation by invoking a Cont
inuation. Although a
Cont
inuation can be completed directly, by invoking bind(T)
, or Cont.trap(Throwable)
, completeing a
Cont
inuation through a Call
abstracts over the execution
context in which the Cont
inuation runs. For example, a Call
returned by Stage.call(Cont)
invokes its bound Cont
inuation
in an asynchronous task, preventing unbounded stack growth from occurring
when chaining large numbers of Cont
inuations together.
Schedules
A Schedule
arranges for the on-time execution of timers. Clock
implements a Schedule
algorithm that efficiently scales to
large numbers of timers.
Stages
A Stage
concurrently executes sequential tasks. Theater
implements an execution Stage
backed by a ForkJoinPool
.
-
ClassDescriptionSkeletal implementation of a stateful
Task
.Skeletal implementation of a statefulTimer
.Call<T>Handle used to eventually complete an asynchronous operation by invoking aCont
inuation.Hashed wheel timerSchedule
.Cont<T>Continuation of an asynchronous operation.Used to trap a continuation when aPullRequest
drops.Stage
that can be started and stopped.Function interface that callers can optionally invoke concurrently.PullContext<T>PullRequest<T>PushRequest<T>Timetable for executing timers at their scheduled times.Marker interface for aSchedule
definition.Thrown when aSchedule
encounters an error.Stage
wrapper that prevents its underlying stage from being started and stopped.An execution context in which to schedule tasks, create continuation calls, and set timers.Marker interface for aStage
definition.Stay<T>Backpressure aware continuation.Source that can delay continuations.Sync<T>ACont
inuation whose completion can be synchronously awaited.Thrown when awaiting aSync
continuation times out.StatefulTaskFunction
to invoke as a sequential process on a concurrent executionStage
, with lifecycle callbacks, and aTaskContext
for self-management.Thrown when performing an invalid operation on aTaskFunction
.Function to invoke as a sequential process on a concurrent executionStage
.External handle to aTaskFunction
bound to an executionStage
.Stage
that executes timers, tasks, and continuations on aForkJoinPool
.StatefulTimerFunction
to invoke at a scheduled time, with lifecycle callbacks, and aTimerContext
for self-management.Thrown when performing an invalid operation on aTimerFunction
.Function to invoke at a scheduled time.External handle to aTimerFunction
bound to aSchedule
.