[Haskell-cafe] Printing of asynchronous exceptions to stderr
Simon Marlow
marlowsd at gmail.com
Wed Nov 17 06:00:48 EST 2010
On 12/11/2010 07:49, Mitar wrote:
> On Wed, Nov 10, 2010 at 4:48 PM, Simon Marlow<marlowsd at gmail.com> wrote:
>> You can use maskUninterruptible in GHC 7, but that is not generally
>> recommended,
>
> Maybe there should be some function like maskUninterruptibleExceptUser
> which would mask everything except UserInterrupt exception. Or maybe
> UserInterrupt and some additional exception meant for use by programs,
> like InterruptMaskException.
That's hard to do, because the runtime system has no knowledge of
exception types, and I'm not sure I like the idea of baking that
knowledge into the RTS.
Furthermore I'm not sure about the usefulness of
maskUninterruptibleExceptUser - it seems even less useful than
maskUninterruptible to me. The point of maskUninterruptible is for
those hoefully rare rare cases where (a) it's really inconvenient to
deal with async exceptions and (b) you have some external guarantee that
the critical section won't block.
> Or we could make two new type classes:
>
> HiddenException -- for those exceptions which should not print
> anything if not caught
We could do that (or something like it), yes.
> UninterruptibleExceptException -- for those exceptions which should
> not be masked with maskUninterruptibleExcept function
but not this (see above).
Cheers,
Simon
More information about the Glasgow-haskell-users
mailing list