async
async copied to clipboard
Run IO operations asynchronously and wait for their results
The following functions used to expect a list of Async computations as input, but have been generalised to work with a Foldable constraint: - waitAny, waitAnySTM, waitAnyCancel, - waitAnyCatch, waitAnyCatchSTM,...
`GHC.Conc.Sync` currently says ```haskell -- ToDo: data ThreadId = ThreadId (Weak ThreadId#) -- But since ThreadId# is unlifted, the Weak type must use open -- type variables. ``` That seems...
``` ghci> a a' = fmap (+1) a ghci> a == a' True ghci> wait a 3 ghci> wait a' 4 ``` That doesn't make any sense to me. I...
In #2, `withAsyncWithUnmask` and `withAsyncOnWithUnmask` (and their non-`with` counterparts) were added, as well as `withAsyncBound`. However, there's no `withAsyncBoundWithUnmask` despite the existence of `forkOSWithUnmask` in GHC. Is there a particular...
The rest of the Haskell world calls things with types like `(a -> f b) -> t a -> f (t b)` traversals, rather than maps. Presumably, `async` has been...
`cancelMany :: [Async a] -> IO ()` is ... okay, but it's annoying when cancelling `Async`s with multiple types. Some options: ```haskell -- Not very nice. Allocates wrappers unnecessarily. data...
I'm working on an abstraction library for forking threads, and want to provide an `async` compatibility module for it. Unfortunately, I cannot do this - the `Async` constructor is hidden,...