[GHC] #4934: threadWaitRead works incorrectly on nonthreaded RTS
GHC
ghc-devs at haskell.org
Sun Jun 8 10:21:43 UTC 2014
#4934: threadWaitRead works incorrectly on nonthreaded RTS
------------------------------------------------+--------------------------
Reporter: slyfox | Owner:
Type: bug | Status: patch
Priority: normal | Milestone: ⊥
Component: Runtime System | Version: 7.0.1
Resolution: | Keywords:
Operating System: Linux | Architecture: x86_64
Type of failure: Incorrect result at runtime | (amd64)
Test Case: | Difficulty:
Blocking: | Unknown
| Blocked By:
| Related Tickets:
------------------------------------------------+--------------------------
Comment (by Simon Marlow <marlowsd@…>):
In [changeset:"9fd507e5758f4141ac2619f0db57136bcab035c6/ghc"]:
{{{
#!CommitTicketReference repository="ghc"
revision="9fd507e5758f4141ac2619f0db57136bcab035c6"
Raise exceptions when blocked in bad FDs (fixes Trac #4934)
Before the patch any call to 'select()' with 'bad_fd' led to:
- unblocking of all threads
- hiding exception for 'threadWaitRead bad_fd'
The patch fixes both cases in this way:
after 'select()' failure we iterate over each blocked descriptor
and poll individually to see it's actual status, which is:
- READY (move to run queue)
- BLOCKED (leave in blocked queue)
- INVALID (send an IOErrror exception)
Signed-off-by: Sergei Trofimovich <slyfox at gentoo.org>
}}}
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/4934#comment:26>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list