A type representing values that may be computed concurrently and operations for working with them.

Example

let delayed_fib = future::spawn {|| fib(5000) };
make_a_sandwich();
io::println(#fmt("fib(5000) = %?", delayed_fib.get()))

Enum future

The future type

Variants

Implementation extensions for future<A>

Methods on the future type

Method get

fn get() -> A

Get the value of the future

Method with

fn with<B>(blk: fn(A) -> B) -> B

Work with the value without copying it

Function from_fn

fn from_fn<A>(f: fn@() -> A) -> future<A>

Create a future from a function.

The first time that the value is requested it will be retreived by calling the function. Note that this function is a local function. It is not spawned into another task.

Function from_port

fn from_port<A: send>(-port: future_pipe::client::waiting<A>) -> future<A>

Create a future from a port

The first time that the value is requested the task will block waiting for the result to be received on the port.

Function from_value

fn from_value<A>(+val: A) -> future<A>

Create a future from a value

The value is immediately available and calling get later will not block.

Function get

fn get<A: copy>(future: future<A>) -> A

Get the value of the future

Function spawn

fn spawn<A: send>(+blk: fn~() -> A) -> future<A>

Create a future from a unique closure.

The closure will be run in a new task and its result used as the value of the future.

Function with

fn with<A, B>(future: future<A>, blk: fn(A) -> B) -> B

Work with the value without copying it