﻿id,summary,reporter,owner,description,type,status,priority,milestone,component,version,resolution,keywords,cc,os,architecture,failure,testcase,blockedby,blocking,related,differential 637,"Ctrl-Break handler doesn't work in forked threads in ""-threaded"" RTS",bulatz@…,simonmar,"The following program demonstrates bug in 6.4.1 (6.4.0 was ok). if you compile it with ""-threaded"", run and press Ctrl-Break, you will see message ""main.EXE: : hGetLine: end of file"" and program blocks (because forked thread is dead). the problem is that installed ctrl-break handler don't called in forked threads if you compile program without ""-threaded"" or with 6.4.0, it works as expected - pressing Ctrl-Break runs my handler so you will see ""Break! main.EXE: thread killed"" message {{{ import Control.Concurrent import Control.Exception import GHC.ConsoleHandler handleCtrlBreak action = do myThread <- myThreadId let onBreak event = do putStrLn "" ^Break!"" killThread myThread bracket (installHandler$ Catch onBreak) (installHandler) $ \oldHandler -> do action main = do handleCtrlBreak $ do x <- newEmptyMVar forkIO$ do a <- getLine print a putMVar x () return () takeMVar x return () }}}",bug,closed,high,6.6.1,Runtime System,6.4.1,fixed,,Bulat.Ziganshin@…,Windows,Unknown/Multiple,,,,,,