unliftio-0.2.17: src/UnliftIO/Async.hs
{-# LANGUAGE CPP #-}
{-# LANGUAGE DeriveDataTypeable #-}
{-# LANGUAGE DeriveFunctor #-}
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE GADTs #-}
{-# LANGUAGE LambdaCase #-}
{-# LANGUAGE RankNTypes #-}
{-# LANGUAGE ScopedTypeVariables #-}
{-# LANGUAGE StandaloneDeriving #-}
-- | Unlifted "Control.Concurrent.Async".
--
-- @since 0.1.0.0
module UnliftIO.Async
(
-- * Asynchronous actions
Async,
-- ** Spawning
async, asyncBound, asyncOn, asyncWithUnmask, asyncOnWithUnmask,
-- ** Spawning with automatic 'cancel'ation
withAsync, withAsyncBound, withAsyncOn, withAsyncWithUnmask,
withAsyncOnWithUnmask,
-- ** Querying 'Async's
wait, poll, waitCatch, cancel, uninterruptibleCancel, cancelWith,
A.asyncThreadId,
-- ** STM operations
A.waitSTM, A.pollSTM, A.waitCatchSTM,
-- ** Waiting for multiple 'Async's
waitAny, waitAnyCatch, waitAnyCancel, waitAnyCatchCancel,
waitEither, waitEitherCatch, waitEitherCancel, waitEitherCatchCancel,
waitEither_,
waitBoth,
-- ** Waiting for multiple 'Async's in STM
A.waitAnySTM, A.waitAnyCatchSTM,
A.waitEitherSTM, A.waitEitherCatchSTM,
A.waitEitherSTM_,
A.waitBothSTM,
-- ** Linking
link, link2,
-- ** Pooled concurrency
pooledMapConcurrentlyN,
pooledMapConcurrently,
pooledMapConcurrentlyN_,
pooledMapConcurrently_,
pooledForConcurrentlyN,
pooledForConcurrently,
pooledForConcurrentlyN_,
pooledForConcurrently_,
pooledReplicateConcurrentlyN,
pooledReplicateConcurrently,
pooledReplicateConcurrentlyN_,
pooledReplicateConcurrently_,
-- * Convenient utilities
race, race_,
concurrently, concurrently_,
mapConcurrently, forConcurrently,
mapConcurrently_, forConcurrently_,
replicateConcurrently, replicateConcurrently_,
Concurrently (..),
#if MIN_VERSION_base(4,8,0)
Conc, conc, runConc,
ConcException (..),
#endif
-- * Re-exports
#if MIN_VERSION_async(2,2,0)
A.AsyncCancelled (..),
#endif
) where
import Control.Concurrent.Async (Async)
import qualified Control.Concurrent.Async as A
import UnliftIO.Internals.Async