Description
Run IO operations asynchronously and wait for their results.
Description
This package provides a higher-level interface over threads, in which an Async a
is a concurrent thread that will eventually deliver a value of type a
. The package provides ways to create Async
computations, wait for their results, and cancel them.
Using Async
is safer than using threads in two ways:
When waiting for a thread to return a result, if the thread dies with an exception then the caller must either re-throw the exception (
wait
) or handle it (waitCatch
); the exception cannot be ignored.The API makes it possible to build a tree of threads that are automatically killed when their parent dies (see
withAsync
).