{-# 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 ) where import Control.Concurrent.Async (Async) import qualified Control.Concurrent.Async as A import UnliftIO.Internals.Async