You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
cancelMany :: [Async a] -> IO () is ... okay, but it's annoying when cancelling Asyncs with multiple types. Some options:
-- Not very nice. Allocates wrappers unnecessarily.dataSomeAsync=foralla.SomeAsync!(Asynca)
cancelSomeAsyncs:: [SomeAsync] ->IO()-- Is a `some` dependency okay, or copying stuff from there?cancelSomeAsyncs:: [SomeAsync] ->IO()-- Potentially expensive if there's a lot of `fmap`ping and not a lot of inlining.
cancelAsyncs [()<$ thisOne, ()<$ thatOne]
-- Can we make <$ cheaper? Yes, but it makes `Async` bigger. Any we need-- to unsafeCoerce with Any to allow Async to unbox (ugh).dataAsynca=Async!ThreadId!(TMVar (EitherSomeExceptionAny)) (Any->a)
a <$Async tid mv fun =Async tid mv (const a)
Nothing I'd call a beautiful solution.
The text was updated successfully, but these errors were encountered:
cancelMany :: [Async a] -> IO ()
is ... okay, but it's annoying when cancellingAsync
s with multiple types. Some options:Nothing I'd call a beautiful solution.
The text was updated successfully, but these errors were encountered: