
#8684: hWaitForInput cannot be interrupted by async exceptions on unix -------------------------------------+------------------------------------- Reporter: nh2 | Owner: (none) Type: bug | Status: new Priority: normal | Milestone: Component: Core Libraries | Version: 7.6.3 Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: | Unknown/Multiple Type of failure: None/Unknown | Test Case: Blocked By: 13497, 13525 | Blocking: Related Tickets: #12912, #13525 | Differential Rev(s): Phab:D42 Wiki Page: | -------------------------------------+------------------------------------- Comment (by nh2): OK, due to the reasons at https://phabricator.haskell.org/D42#119714 I found that this bug is also present in non`-threaded` on Darwin and iOS: `ghc-bug-8684-test.hs` {{{ import Control.Concurrent import System.IO import System.Timeout main :: IO () main = do forkIO $ do threadDelay (5 * 1000000) -- The timeout should terminate before we ever make it here putStrLn "t=5 seconds: we shouldn't be here" timeout (1 * 1000000) $ do hWaitForInput stdin (10 * 1000) putStrLn "we shouldn't be here" return () }}} I just confirmed that this prints `t=5 seconds: we shouldn't be here` on OSX. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/8684#comment:30 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler