async-2.0.2: 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
).
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 nowTrustworthy
Changes in 2.0.1.0:
- Added a
Functor
instance forAsync
- Added
asyncBound
,asyncOn
,asyncWithUnmask
,asyncOnWithUnmask
,withAsyncBound
,withAsyncOn
,withAsyncWithUnmask
,withAsyncOnWithUnmask
. - Added
mapConcurrently
- Added
Concurrently
(withApplicative
andAlternative
instances)
- Control
- Concurrent