Futures are objects that act as placeholders for values which are unknown at the time
they are created. A future is an instance of
Futures can be returned when invoking remote methods (see Proxy). This allows the caller to continue doing work and wait for the value at the caller’s convenience.
Futures can also be created explicitly by calling
which returns a new future object accepting
senders number of values. A future created in this
way can be sent to any chare(s) in the system by message passing, with the purpose
of allowing remote chares to send values to the caller.
Futures can only be created from threads other than the main thread (see threaded entry methods).
Return the value of the future, or list of values if created with
senders > 1. The call will block if the value(s) has not yet been received. This can only be used by the chare that created the future.
valueto the chare waiting on the future. Can be called from any chare.