## Changes in 2.1.1.1: - Make 'cancelWith' wait for the cancelled thread to terminate, like 'cancel' - Updates to dependency bounds for GHC 8.2 ## Changes in 2.1.1: - Add `concurrently_` - Add `replicateConcurrently` - Add `replicateConcurrently_` - Fix incorrect argument order in `forConcurrently_` - Generalize `mapConcurrently_` and `forConcurrently_` to `Foldable` - `withAsync` now reliably kills the thread, by using an uninterruptible cancel - Make `cancel` wait for the thread to finish, and adjust 'concurrently' to match ## Changes in 2.1.0: - Bump base dependency to allow 4.10 - Remove invalid Monad instance for `Concurrently` - Add `Monoid` and `Semigroup` instances for `Concurrently` - Add `forConcurrently` (flipped version of `mapConcurrently`) - Add STM version of all applicable IO functions: `waitAnySTM`, `waitAnyCatchSTM`, `waitEitherSTM`, `waitEitherCatchSTM`, `waitEitherSTM_`, and `waitBothSTM`. ## 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` ## Changes in 2.0.1.0: - Added a `Functor` instance for `Async` - Added `asyncBound`, `asyncOn`, `asyncWithUnmask`, `asyncOnWithUnmask`, `withAsyncBound`, `withAsyncOn`, `withAsyncWithUnmask`, `withAsyncOnWithUnmask`. - Added `mapConcurrently` - Added `Concurrently` (with `Applicative` and `Alternative` instances)