diff options
Diffstat (limited to 'libraries/base/Control/Concurrent.hs')
-rw-r--r-- | libraries/base/Control/Concurrent.hs | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/libraries/base/Control/Concurrent.hs b/libraries/base/Control/Concurrent.hs index ada825d0f0..63cd96bfdd 100644 --- a/libraries/base/Control/Concurrent.hs +++ b/libraries/base/Control/Concurrent.hs @@ -109,7 +109,7 @@ import Control.Exception.Base as Exception import GHC.Conc hiding (threadWaitRead, threadWaitWrite, threadWaitReadSTM, threadWaitWriteSTM) -import GHC.IO ( unsafeUnmask, catchException ) +import GHC.IO ( unsafeUnmask, catch ) import GHC.IORef ( newIORef, readIORef, writeIORef ) import GHC.Base @@ -381,7 +381,7 @@ runInUnboundThread action = do mv <- newEmptyMVar mask $ \restore -> do tid <- forkIO $ Exception.try (restore action) >>= putMVar mv - let wait = takeMVar mv `catchException` \(e :: SomeException) -> + let wait = takeMVar mv `catch` \(e :: SomeException) -> Exception.throwTo tid e >> wait wait >>= unsafeResult else action |