[commit: base] master: Remove mention of setUncaughtExceptionHandler from forkIO. (6e71bdd)
Simon Marlow
marlowsd at gmail.com
Mon Aug 1 14:47:25 CEST 2011
On 27/07/2011 04:10, Edward Z. Yang wrote:
> Repository : ssh://darcs.haskell.org//srv/darcs/packages/base
>
> On branch : master
>
> http://hackage.haskell.org/trac/ghc/changeset/6e71bdd5742a62bcd239757f3cc8872d1615fc26
>
>> ---------------------------------------------------------------
>
> commit 6e71bdd5742a62bcd239757f3cc8872d1615fc26
> Author: Edward Z. Yang<ezyang at mit.edu>
> Date: Tue Jul 26 23:08:16 2011 -0400
>
> Remove mention of setUncaughtExceptionHandler from forkIO.
>
> First of all, the 'forkIO' mechanism doesn't use
> 'setUncaughtExceptionHandler' to install the masking
> handler: it uses 'catchException'. Second of all,
> 'setUncaughtExceptionHandler' is undocumented, global, and
> wouldn't even work for the intended purpose!
>
> Signed-off-by: Edward Z. Yang<ezyang at mit.edu>
There seems to be some misunderstanding here. The documentation was
correct, and in the absence of a reference to
"setUncaughtExceptionHandler" there's no clue as to what the "uncaught
exception handler" might mean.
I agree that setUncaughtExceptionHandler is undocumented and global and
undoubtedly a less-than-perfect design. But I think this patch is a
step backwards, not forwards.
Cheers,
Simon
>> ---------------------------------------------------------------
>
> GHC/Conc/Sync.lhs | 2 +-
> 1 files changed, 1 insertions(+), 1 deletions(-)
>
> diff --git a/GHC/Conc/Sync.lhs b/GHC/Conc/Sync.lhs
> index f16ee3f..4475d2e 100644
> --- a/GHC/Conc/Sync.lhs
> +++ b/GHC/Conc/Sync.lhs
> @@ -192,7 +192,7 @@ GHC note: the new thread inherits the /masked/ state of the parent
> The newly created thread has an exception handler that discards the
> exceptions 'BlockedIndefinitelyOnMVar', 'BlockedIndefinitelyOnSTM', and
> 'ThreadKilled', and passes all other exceptions to the uncaught
> -exception handler (see 'setUncaughtExceptionHandler').
> +exception handler.
> -}
> forkIO :: IO () -> IO ThreadId
> forkIO action = IO $ \ s ->
>
>
>
> _______________________________________________
> Cvs-libraries mailing list
> Cvs-libraries at haskell.org
> http://www.haskell.org/mailman/listinfo/cvs-libraries
More information about the Cvs-libraries
mailing list