[GHC] #367: Infinite loops can hang Concurrent Haskell
GHC
cvs-ghc at haskell.org
Tue Sep 25 10:52:38 CEST 2012
#367: Infinite loops can hang Concurrent Haskell
------------------------------------------+---------------------------------
Reporter: simonpj | Owner: ezyang
Type: bug | Status: new
Priority: lowest | Milestone: _|_
Component: Compiler | Version: 6.4.1
Resolution: None | Keywords: scheduler allocation
Os: Unknown/Multiple | Architecture: Unknown/Multiple
Failure: Incorrect result at runtime | Difficulty: Unknown
Testcase: | Blockedby:
Blocking: | Related:
------------------------------------------+---------------------------------
Comment(by simonmar):
I think we could incorporate the patch, but not turn on the flag by
default. If you want to work on it further and see if you can get the
code size penalty down that would be great - my suggestion would be to do
as I mentioned earlier and omit the yield check for functions which are
guaranteed to yield within a finite time, because they only call other
functions which have that property. You can assume that calling an
arbitrary closure or a primop is guaranteed to yield. As a first step you
can do the analysis within a module, the next step would be to extend it
across module boundaries.
We should check the primops to make sure that none of them hog the CPU for
a long time. I think `newArray#` has this problem, because it fills in
the array in a loop, so for a large array it won't yield quickly.
--
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/367#comment:29>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the Glasgow-haskell-bugs
mailing list