[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