Lines Matching refs:Async

89 module Control.Concurrent.Async (
92 Async,
169 data Async a = Async type
176 instance Eq (Async a) where
177 Async a _ == Async b _ = a == b function
179 instance Ord (Async a) where
180 Async a _ `compare` Async b _ = a `compare` b function
182 instance Hashable (Async a) where
183 hashWithSalt salt (Async a _) = hashWithSalt salt a
185 instance Functor Async where
186 fmap f (Async a w) = Async a (fmap (fmap f) w)
189 compareAsyncs :: Async a -> Async b -> Ordering
190 compareAsyncs (Async t1 _) (Async t2 _) = compare t1 t2
193 async :: IO a -> IO (Async a)
197 asyncBound :: IO a -> IO (Async a)
201 asyncOn :: Int -> IO a -> IO (Async a)
207 asyncWithUnmask :: ((forall b . IO b -> IO b) -> IO a) -> IO (Async a)
213 asyncOnWithUnmask :: Int -> ((forall b . IO b -> IO b) -> IO a) -> IO (Async a)
218 -> IO a -> IO (Async a)
225 return (Async t (readTMVar var))
242 withAsync :: IO a -> (Async a -> IO b) -> IO b
246 withAsyncBound :: IO a -> (Async a -> IO b) -> IO b
250 withAsyncOn :: Int -> IO a -> (Async a -> IO b) -> IO b
257 :: ((forall c. IO c -> IO c) -> IO a) -> (Async a -> IO b) -> IO b
265 :: Int -> ((forall c. IO c -> IO c) -> IO a) -> (Async a -> IO b) -> IO b
270 -> IO a -> (Async a -> IO b) -> IO b
277 let a = Async t (readTMVar var)
291 wait :: Async a -> IO a
304 waitCatch :: Async a -> IO (Either SomeException a)
318 poll :: Async a -> IO (Maybe (Either SomeException a))
323 waitSTM :: Async a -> STM a
331 waitCatchSTM :: Async a -> STM (Either SomeException a)
332 waitCatchSTM (Async _ w) = w
337 pollSTM :: Async a -> STM (Maybe (Either SomeException a))
338 pollSTM (Async _ w) = (Just <$> w) `orElse` return Nothing
357 cancel :: Async a -> IO ()
358 cancel a@(Async t _) = throwTo t AsyncCancelled <* waitCatch a
378 uninterruptibleCancel :: Async a -> IO ()
388 cancelWith :: Exception e => Async a -> e -> IO ()
389 cancelWith a@(Async t _) e = throwTo t e <* waitCatch a
399 waitAnyCatch :: [Async a] -> IO (Async a, Either SomeException a)
405 waitAnyCatchSTM :: [Async a] -> STM (Async a, Either SomeException a)
413 waitAnyCatchCancel :: [Async a] -> IO (Async a, Either SomeException a)
425 waitAny :: [Async a] -> IO (Async a, a)
431 waitAnySTM :: [Async a] -> STM (Async a, a)
439 waitAnyCancel :: [Async a] -> IO (Async a, a)
445 waitEitherCatch :: Async a -> Async b
457 waitEitherCatchSTM :: Async a -> Async b
468 waitEitherCatchCancel :: Async a -> Async b
479 waitEither :: Async a -> Async b -> IO (Either a b)
485 waitEitherSTM :: Async a -> Async b -> STM (Either a b)
494 waitEither_ :: Async a -> Async b -> IO ()
500 waitEitherSTM_:: Async a -> Async b -> STM ()
509 waitEitherCancel :: Async a -> Async b -> IO (Either a b)
518 waitBoth :: Async a -> Async b -> IO (a,b)
524 waitBothSTM :: Async a -> Async b -> STM (a,b)
537 forall a . ExceptionInLinkedThread (Async a) SomeException
543 showsPrec p (ExceptionInLinkedThread (Async t _) e) =
564 link :: Async a -> IO ()
578 -> Async a
596 link2 :: Async a -> Async b -> IO ()
606 link2Only :: (SomeException -> Bool) -> Async a -> Async b -> IO ()
607 link2Only shouldThrow left@(Async tl _) right@(Async tr _) =