
#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): Looking at this with `+RTS -Ds` again, we get: {{{ created capset 0 of type 2 created capset 1 of type 3 cap 0: initialised assigned cap 0 to capset 0 assigned cap 0 to capset 1 new task (taskCount: 1) cap 0: created thread 1 new bound thread (1) cap 0: schedule() cap 0: running thread 1 (ThreadRunGHC) fdReady called with msecs = 0 fdReady res = 1 setup cap 0: created thread 2 cap 0: thread 1 stopped (suspended while making a foreign call) fdReady called with msecs = 5000 fdReady res = -1 ... [lots of output running only thread 1] ... cap 0: running thread 1 (ThreadRunGHC) cap 0: thread 1 stopped (suspended while making a foreign call) fdReady called with msecs = 4690 fdReady res = -1 cap 0: running thread 1 (ThreadRunGHC) cap 0: thread 1 stopped (suspended while making a foreign call) fdReady called with msecs = 4680 fdReady res = 0 cap 0: running thread 1 (ThreadRunGHC) cap 0: throwTo: from thread 1 to thread 2 thread 2 @ 0x4200105aa0 is not blocked (TSO_DIRTY) cap 0: throwTo: blocking on thread 2 cap 0: thread 1 stopped (blocked on throwTo) thread 1 @ 0x4200105388 is blocked on a throwto message (TSO_DIRTY) cap 0: running thread 2 (ThreadRunGHC) cap 0: raising exception in thread 2. cap 0: waking up thread 1 on cap 0 cap 0: thread 2 stopped (yielding) cap 0: running thread 1 (ThreadRunGHC) }}} So the new question here is: Why is `thread 2` (the one that contains `unmask $ threadDelay n >> throwTo pid ex`) never run, and `thread 1` is run all the time? -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/8684#comment:18 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler