[Haskell-cafe] Help with async library and killing child processes
Branimir Maksimovic
branimir.maksimovic at gmail.com
Thu Mar 19 18:32:42 UTC 2020
I use my nonblocking library:
eg for IRC bot:
let myCallbacks = defaultCallbacks {
done_connected = binded,
done_reading = response_get tm ref
stdgen gsref,
done_writing = response_written,
done_closed = \pl s -> do
putStrLn "peer closed, reconnecting"
s <- socket myCallbacks
connect pl s "83.140.172.212:6667"
return 1,
handle_error = \pl s buf len-> do
str <- peekCStringLen
(buf,fromIntegral len)
putStrLn $ "error "++str++",
reconnecting"
s <- socket myCallbacks
connect pl s "83.140.172.212:6667"
return 1,
tick = binded_tick tm
}
s <- socket myCallbacks
pl <- epoll 1000
connect pl s "83.140.172.212:6667"
run_loop pl (-1)
On 3/19/20 3:40 PM, Michael Hull wrote:
> Hi Niklas and Patrick,
>
> Thankyou both for the comments -- this is what I am looking for.
>
> I have a follow-on question, if I have code like
>
> getPages :: IO()
> getPages = do (page1, page2, page3)
> <- runConcurrently $ (,,)
> <$> Concurrently (getURL "url1")
> <*> Concurrently (getURL "url2")
> <*> Concurrently (getURL "url3")
>
> main :: IO()
> main = do
> f <- async getPages
> cancel f
>
> Am I guaranteed the the getURL() calls will definitely have either
> finished, or cancel? (I looked through the source
> (https://hackage.haskell.org/package/async-2.2.2/docs/src/Control.Concurrent.Async.html#Concurrently),
> and I think so, because runConcurrently is implemented in terms of
> race, which is implemented using withAsync, but I'm not confident with
> interpreting Haskell!)
>
>
> Many thanks,
>
> Mike
>
>
>
> On Wed, 18 Mar 2020 at 03:15, Niklas Hambüchen <mail at nh2.me
> <mailto:mail at nh2.me>> wrote:
>
> I've you're new to async, also check out my recent rework of the
> docs that talk about this topic specifically:
>
> https://github.com/simonmar/async/pull/105/files
>
> (To be available in the next release of async.)
>
>
> _______________________________________________
> Haskell-Cafe mailing list
> To (un)subscribe, modify options or view archives go to:
> http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
> Only members subscribed via the mailman list are allowed to post.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/haskell-cafe/attachments/20200319/64238245/attachment.html>
More information about the Haskell-Cafe
mailing list