import Control.Concurrent
import Control.Exception
import GHC.Conc

-- test forkBlockIO
main = do
  main_thread <- myThreadId
  m <- newEmptyMVar
  sub_thread <- mask_ $ forkIO $
                      sum [1..100000] `seq`
                          throwTo main_thread (ErrorCall "foo")
  killThread sub_thread
  putStrLn "oops"

