async (original) (raw)
Maintained by Simon Marlow
This version can be pinned in stack with:async-2.2.5@sha256:b7648c6165729a973d95cb328f9fd874813a81c727707e8b2552b4f03399763b,3366
Module documentation for 2.2.5
- Control
- Control.Concurrent
* Control.Concurrent.Async
* Control.Concurrent.Async.Internal
- Control.Concurrent
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 createAsync
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
).