Create a Future
that will evaluate a
using the given ExecutorService
.
Create a Future
from an asynchronous computation, which takes the form
of a function with which we can register a callback.
Create a Future
from an asynchronous computation, which takes the form
of a function with which we can register a callback. This can be used
to translate from a callback-based API to a straightforward monadic
version. See Task.async
for a version that allows for asynchronous
exceptions.
Promote a non-strict value to a Future
.
Promote a non-strict value to a Future
. Note that since Future
is
unmemoized, this will recompute a
each time it is sequenced into a
larger computation. Memoize a
with a lazy value before calling this
function if memoization is desired.
Returns a Future
that produces the same result as the given Future
,
but forks its evaluation off into a separate (logical) thread, using
the given ExecutorService
.
Returns a Future
that produces the same result as the given Future
,
but forks its evaluation off into a separate (logical) thread, using
the given ExecutorService
. Note that this forking is only described
by the returned Future
--nothing occurs until the Future
is run.
Calls Nondeterminism[Future].gatherUnordered
.
Calls Nondeterminism[Future].gatherUnordered
.
7.0.3
Convert a strict value to a Future
.
Produce f
in the main trampolining loop, Future.step
, using a fresh
call stack.
Produce f
in the main trampolining loop, Future.step
, using a fresh
call stack. The standard trampolining primitive, useful for avoiding
stack overflows.