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).
Changes in 2.0.2:
Add a Monad instance for Concurrently
Bump base dependency to allow 4.9
Changes in 2.0.1.6:
Add workaround to waitCatch for #14
Changes in 2.0.1.5:
Bump base dependencies for GHC 7.8
Changes in 2.0.1.4:
Bump base dependency of test suite
Changes in 2.0.1.3:
Bump base dependency to allow 4.6
Changes in 2.0.1.2:
Bump stm dependency to 2.4
Changes in 2.0.1.1:
Safe Haskell support: Control.Concurrent.Async is now Trustworthy