module RFC.Concurrent
( module RFC.Concurrent
, module Control.Concurrent.Async.Lifted
) where
import Control.Concurrent.Async.Lifted (mapConcurrently,
mapConcurrently_)
import RFC.Prelude hiding (mapConcurrently)
doConcurrently :: (Traversable t, MonadBaseControl IO m) => t (m a) -> m (t a)
doConcurrently = mapConcurrently id
doConcurrently_ :: (Foldable f, MonadBaseControl IO m) => f (m a) -> m ()
doConcurrently_ = mapConcurrently_ id
filterConcurrently :: (MonadBaseControl IO m) => (a -> Bool) -> [m a] -> m [a]
filterConcurrently filterFunc actions =
filter filterFunc <$> doConcurrently actions