
#5902: Cannot tell from an exception handler whether the exception was asynchronous -------------------------------------+------------------------------------ Reporter: simonmar | Owner: simonmar Type: bug | Status: new Priority: normal | Milestone: 7.8.1 Component: Compiler | Version: 7.4.1 Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: Unknown/Multiple Type of failure: None/Unknown | Difficulty: Unknown Test Case: | Blocked By: Blocking: | Related Tickets: -------------------------------------+------------------------------------ Comment (by igloo): If we had {{{ newCatch :: Exception e => IO a -> ((e, Bool{- async? -}) -> IO a) -> IO a newCatch = ... primitive ... newThrow :: Exception e => (e, Bool) -> a newThrow (e, async) = if async then do t <- myThreadId throwTo t e else throw e }}} then would using `newCatch` and `newThrow` in place of `catch` and `throw` solve the problem? (at the expense of having this annoying `Bool` getting in the way, and making the code less pretty). -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/5902#comment:9 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler