- Added Control.Concurrent.Stream for processing streams with a fixed number of workers. Includes a bounded version of mapConcurrently: mapConcurrentlyBounded.
- Added Control.Concurrent.Async.Warden for a way to create Asyncs that is more flexible than 'withAsync' but retains the guarantee of cancelling orphaned threads, unlike 'async'.
- support GHC 9.12, GHC 9.14, and MicroHs
- cabal flag debug-auto-label: label threads automatically (#167)
- #117: Document that empty for Concurrently waits forever
- #120: Add ConcurrentlyE.
- #123: Fix failing concurrentlyE tests in older GHCs.
- #124: Allow hashable 1.4
- #126: Semigroup and Monoid instances for ConcurrentlyE
- #120: Add ConcurrentlyE
- #138: expose internals as Control.Concurrent.Async.Internal
- #131: Fix typos in docs
- #132: waitAny(Catch): clarify non-empty input list requirement
- #142: Add cancelMany
- #135, #145, #150: Support for GHC 9.4, 9.6, 9.8
- Document that empty for Concurrently waits forever.
- Support for GHC 9.2
- Documentation fixes
- Builds with GHC 8.6.x
- linkOnly and link2Only are now exported
- wait now has the same behaviour with BlockedIndefinitelyOnSTM as waitCatch
- Documentation fixes
- Add a Hashable instance for Async
- Bump upper bounds
- Documentation updates
- cancel now throws AsyncCancelled instead of ThreadKilled
- link and link2 now wrap exceptions in ExceptionInLinkedThread when throwing to the linked thread. ExceptionInLinkedThread is a child of AsyncException in the exception hierarchy, so this maintains the invariant that exceptions thrown asynchronously should be AsyncExceptions.
- link and link2 do not propagate AsyncCancelled, so it's now possible to cancel a linked thread without cancelling yourself.
- Added linkOnly and link2Only to specify which exceptions should be propagated,if you want something other than the default behaviour of ignoring AsyncCancelled.
- new utility function compareAsyncs for comparing Asyncs of different types.
- Add a
Hashableinstance forAsync a
- Make 'cancelWith' wait for the cancelled thread to terminate, like 'cancel'
- Updates to dependency bounds for GHC 8.2
- Add
concurrently_ - Add
replicateConcurrently - Add
replicateConcurrently_ - Fix incorrect argument order in
forConcurrently_ - Generalize
mapConcurrently_andforConcurrently_toFoldable withAsyncnow reliably kills the thread, by using an uninterruptible cancel- Make
cancelwait for the thread to finish, and adjust 'concurrently' to match
- Bump base dependency to allow 4.10
- Remove invalid Monad instance for
Concurrently - Add
MonoidandSemigroupinstances forConcurrently - Add
forConcurrently(flipped version ofmapConcurrently) - Add STM version of all applicable IO functions:
waitAnySTM,waitAnyCatchSTM,waitEitherSTM,waitEitherCatchSTM,waitEitherSTM_, andwaitBothSTM.
- Add a Monad instance for
Concurrently - Bump base dependency to allow 4.9
- Add workaround to waitCatch for #14
- Bump
basedependencies for GHC 7.8
- Bump
basedependency of test suite
- Bump
basedependency to allow 4.6
- Bump
stmdependency to 2.4
- Safe Haskell support:
Control.Concurrent.Asyncis nowTrustworthy
- Added a
Functorinstance forAsync - Added
asyncBound,asyncOn,asyncWithUnmask,asyncOnWithUnmask,withAsyncBound,withAsyncOn,withAsyncWithUnmask,withAsyncOnWithUnmask. - Added
mapConcurrently - Added
Concurrently(withApplicativeandAlternativeinstances)