[Haskell-cafe] Tricky exception handling
Joel Reymont
joelr1 at gmail.com
Mon Dec 12 11:26:23 EST 2005
Bulat,
I would welcome suggestions for improvements. Please let me know how
my code could be made more efficient and more readable, keeping in
mind what I'm trying to accomplish.
Notice that my logic is different from the one that you are proposing.
What I want is to handle exceptions in the forever loop _and_
terminate the forever loop when an exception is posted. The only
reason I have the exception handler is that I want to post a message
when the exception is received, unless it's a KillThread exception.
Unless I'm mistaken, the code above will run forever and will not
exit on exception.
I use the code like this:
tid1 <- forkIO $ writeLoop post h ssl
`finally` finalize sock_lock ssl_lock
but indeed no message will be posted if an exception happens between
the calls to handle and things will just be silently finalized. I'm
not sure how to have it both ways here.
On Dec 12, 2005, at 11:29 AM, Bulat Ziganshin wrote:
> Hello Joel,
>
> your code is unreadable, inefficent and don't handle async exceptions
> between calls to `handle`. as i already sayed you'd better to use:
>
> handle (...)
> repeat_forever
> do cmd <- read h ssl
> post $! Cmd $! cmd
--
http://wagerlabs.com/
More information about the Haskell-Cafe
mailing list