logo       

[GHC] #825: with -threaded, infinite loops run too slowly: msg#00047

lang.haskell.glasgow.bugs

Subject: [GHC] #825: with -threaded, infinite loops run too slowly

#825: with -threaded, infinite loops run too slowly
-------------------------------+--------------------------------------------
Reporter: guest | Owner:
Type: bug | Status: new
Priority: normal | Milestone:
Component: Runtime System | Version: 6.4.2
Severity: normal | Keywords:
Os: Linux | Difficulty: Unknown
Architecture: x86 |
-------------------------------+--------------------------------------------
This program

{{{
a :: ()
a = a

main = print a
}}}

normally dies with a <<loop>> exception. However, when compiled with
-threaded, it just sits, consuming no CPU. While I know this isn't wrong
behavior, it severely confounded my expectation that an undefined value
would either throw an exception or start consuming resources
conspicuously. This caused me to go down the wrong alley debugging.

When watched with strace, I see the program repeatedly doing

{{{
12051 --- SIGALRM (Alarm clock) @ 0 (0) ---
12051 sigreturn() = ? (mask now [])
12051 futex(0x81c0178, FUTEX_WAIT, 1, NULL) = -1 EINTR (Interrupted system
call)
}}}

Another unhappy behavior of this program (compiled with -threaded) is that
it takes two SIGINTs to kill.

I'm using the ghc 6.4.2-2 package in Debian, and I saw the same behavior
with 6.4.1.

--
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/825>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler_______________________________________________
Glasgow-haskell-bugs mailing list
Glasgow-haskell-bugs@xxxxxxxxxxx
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs
<Prev in Thread] Current Thread [Next in Thread>
Google Custom Search

News | FAQ | advertise