async-2.2.5: Run IO operations asynchronously and wait for their results
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
).
- Control