id,summary,reporter,owner,description,type,status,priority,milestone,component,version,resolution,keywords,cc,os,architecture,failure,difficulty,testcase,blockedby,blocking,related
3997,Lazy I/O and asynchronous exceptions don't mix well,simonmar,,"This program:

{{{
import Control.Concurrent
import Control.Exception

main = do
  s <- getContents
  t <- forkIO $ evaluate (length s) >> return ()
  threadDelay 1000
  killThread t
  print (length s)
}}}

results in

{{{
$ ./async            
async: thread killed
}}}

when really it should just wait for input.

The problem is #2558, but since I'm not sure that #2558 has a general solution (see comments on that ticket) I thought I'd open a ticket for this specific case.  It's amazing nobody has complained about this before.
",bug,closed,normal,7.0.1,libraries/base,6.12.1,fixed,,,Unknown/Multiple,Unknown/Multiple,Incorrect result at runtime,Unknown,,,,
