const class concurrent::Future

sys::Obj
  concurrent::Future

@Js

Source

Future represents the result of an asynchronous computation.

See Actors

cancel

Void cancel()

Source

Cancel this computation if it has not begun processing. No guarantee is made that the computation will be cancelled.

complete

This complete(Obj? val)

Source

Complete the future successfully with given value. Raise an exception if value is not immutable or the future is already complete (ignore this call if cancelled). Return this.

TODO: prototype feature

completeErr

This completeErr(Err err)

Source

Complete the future with a failure condition using given exception. Raise an exception if the future is already complete (ignore this call if cancelled). Return this.

TODO: prototype feature

get

Obj? get(Duration? timeout := null)

Source

Block current thread until result is ready. If timeout occurs then TimeoutErr is raised. A null timeout blocks forever. If an exception was raised by the asynchronous computation, then it is raised to the caller of this method.

isCancelled

@Deprecated { msg="Use Future.state" }
Bool isCancelled()

Source

Return if this message has been cancelled.

isDone

@Deprecated { msg="Use Future.state" }
Bool isDone()

Source

Return true if the asynchronous computation has completed processing. Completion may be due to the computation returning a result, throwing an exception, or cancellation.

make

new make()

Source

Construct a future in the pending state. TODO: prototype feature

state

FutureState state()

Source

Current state of asynchronous computation

waitFor

This waitFor(Duration? timeout := null)

Source

Block until this future transitions to a completed state (ok, err, or canceled). If timeout is null then block forever, otherwise raise a TimeoutErr if timeout elapses. Return this.

waitForAll

const static Void waitForAll(Future[] futures, Duration? timeout := null)

Source

Block on a list of futures until they all transition to a completed state. If timeout is null block forever, otherwise raise TimeoutErr if any one of the futures does not complete before the timeout elapses.