lifted-async 0.9.2 → 0.9.3
raw patch · 5 files changed
+55/−6 lines, 5 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
+ Control.Concurrent.Async.Lifted: replicateConcurrently :: MonadBaseControl IO m => Int -> m a -> m [a]
+ Control.Concurrent.Async.Lifted: replicateConcurrently_ :: MonadBaseControl IO m => Int -> m a -> m ()
+ Control.Concurrent.Async.Lifted.Safe: replicateConcurrently :: (MonadBaseControl IO m, Forall (Pure m)) => Int -> m a -> m [a]
+ Control.Concurrent.Async.Lifted.Safe: replicateConcurrently_ :: (MonadBaseControl IO m, Forall (Pure m)) => Int -> m a -> m ()
Files
- CHANGELOG.md +7/−1
- README.md +2/−2
- lifted-async.cabal +4/−3
- src/Control/Concurrent/Async/Lifted.hs +21/−0
- src/Control/Concurrent/Async/Lifted/Safe.hs +21/−0
CHANGELOG.md view
@@ -1,4 +1,10 @@-## v0.9.2+## v0.9.3 - 2017-06-26++* Add Haddock comments for concurrently_ (#23)+* Add replicateConcurrently and replicateConcurrently_+* Test with GHC 8.2.1 on Travis++## v0.9.2 - 2017-06-24 * Add concurrently_ (#22)
README.md view
@@ -3,8 +3,8 @@ [](https://hackage.haskell.org/package/lifted-async) [](http://packdeps.haskellers.com/feed?needle=lifted-async) [](http://stackage.org/lts/package/lifted-async)-[](http://travis-ci.org/maoe/lifted-async)-[](https://gitter.im/maoe/lifted-async)+[](https://travis-ci.org/maoe/lifted-async)+[](https://gitter.im/maoe/lifted-async?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge) This package provides IO operations from [async](http://hackage.haskell.org/package/async) package lifted to any instance of `MonadBase` or `MonadBaseControl` from [monad-control](http://hackage.haskell.org/package/monad-control) package.
lifted-async.cabal view
@@ -1,5 +1,5 @@ name: lifted-async-version: 0.9.2+version: 0.9.3 synopsis: Run lifted IO operations asynchronously and wait for their results homepage: https://github.com/maoe/lifted-async bug-reports: https://github.com/maoe/lifted-async/issues@@ -12,7 +12,8 @@ build-type: Simple cabal-version: >= 1.8 tested-with:- GHC == 8.0.2+ GHC == 8.2.1+ , GHC == 8.0.2 , GHC == 7.10.2 , GHC == 7.8.4 , GHC == 7.6.3@@ -115,5 +116,5 @@ source-repository this type: git- tag: v0.9.2+ tag: v0.9.3 location: https://github.com/maoe/lifted-async.git
src/Control/Concurrent/Async/Lifted.hs view
@@ -66,12 +66,14 @@ , race, race_, concurrently, concurrently_ , mapConcurrently, mapConcurrently_ , forConcurrently, forConcurrently_+ , replicateConcurrently, replicateConcurrently_ , Concurrently(..) ) where import Control.Applicative import Control.Concurrent (threadDelay) import Control.Monad ((>=>), forever, liftM, void)+import Data.Foldable (fold) import GHC.IO (unsafeUnmask) import Prelude hiding (mapM) @@ -362,6 +364,7 @@ waitBoth a b {-# INLINABLE concurrently #-} +-- | Generalized version of 'A.concurrently_'. concurrently_ :: MonadBaseControl IO m => m a -> m b -> m () concurrently_ left right = void $ concurrently left right {-# INLINABLE concurrently_ #-}@@ -397,6 +400,24 @@ -> (a -> m b) -> m () forConcurrently_ = flip mapConcurrently_++-- | Generalized version of 'A.replicateConcurrently'.+replicateConcurrently+ :: MonadBaseControl IO m+ => Int+ -> m a+ -> m [a]+replicateConcurrently n =+ runConcurrently . sequenceA . replicate n . Concurrently++-- | Generalized version of 'A.replicateConcurrently_'.+replicateConcurrently_+ :: MonadBaseControl IO m+ => Int+ -> m a+ -> m ()+replicateConcurrently_ n =+ runConcurrently . fold . replicate n . Concurrently . void -- | Generalized version of 'A.Concurrently'. --
src/Control/Concurrent/Async/Lifted/Safe.hs view
@@ -70,6 +70,7 @@ , race, race_, concurrently, concurrently_ , mapConcurrently, mapConcurrently_ , forConcurrently, forConcurrently_+ , replicateConcurrently, replicateConcurrently_ , Concurrently(..) @@ -87,6 +88,7 @@ import Control.Applicative import Control.Concurrent (threadDelay) import Control.Monad+import Data.Foldable (fold) import Control.Concurrent.Async (Async) import Control.Exception.Lifted (SomeException, Exception)@@ -327,6 +329,7 @@ => m a -> m b -> m (a, b) concurrently = liftBaseOp2_ A.concurrently +-- | Generalized version of 'A.concurrently_'. concurrently_ :: forall m a b. (MonadBaseControl IO m, Forall (Pure m)) => m a -> m b -> m ()@@ -373,6 +376,24 @@ -> (a -> m b) -> m () forConcurrently_ = flip mapConcurrently_++-- | Generalized version of 'A.replicateConcurrently'.+replicateConcurrently+ :: (MonadBaseControl IO m, Forall (Pure m))+ => Int+ -> m a+ -> m [a]+replicateConcurrently n =+ runConcurrently . sequenceA . replicate n . Concurrently++-- | Generalized version of 'A.replicateConcurrently_'.+replicateConcurrently_+ :: (MonadBaseControl IO m, Forall (Pure m))+ => Int+ -> m a+ -> m ()+replicateConcurrently_ n =+ runConcurrently . fold . replicate n . Concurrently . void -- | Generalized version of 'A.Concurrently'. --