[GHC] #9284: shutdownCapability sometimes loops indefinitely on OSX after forkProcess

GHC ghc-devs at haskell.org
Thu Aug 7 14:55:57 UTC 2014


#9284: shutdownCapability sometimes loops indefinitely on OSX after forkProcess
-------------------------------------+-------------------------------------
              Reporter:  edsko       |            Owner:
                  Type:  bug         |           Status:  new
              Priority:  normal      |        Milestone:
             Component:  Compiler    |          Version:  7.8.2
            Resolution:              |         Keywords:
      Operating System:              |     Architecture:  Unknown/Multiple
  Unknown/Multiple                   |       Difficulty:  Unknown
       Type of failure:              |       Blocked By:
  None/Unknown                       |  Related Tickets:  #9377
             Test Case:              |
              Blocking:              |
Differential Revisions:              |
-------------------------------------+-------------------------------------

Comment (by AndreasVoellmy):

 The issue was that `forkProcess` calls `hs_exit_(rtsTrue)`, which waits
 for foreign calls to return. Then, the foreign calls made by IO manager
 threads were not woken up (the cause of this is a bit complicated so I'll
 explain that elsewhere). The solution in the case of forkProcess is to
 call `hs_exit(rtsFalse)` which is what normal exit of the Haskell RTS does
 anyway. However, some clients (e.g. when writing a C program that start
 and exit GHC RTS) may call `hs_exit()`, which calls `hs_exit_(rtsTrue)`,
 so the problem of waking up the foreign calls made by IO manager threads
 remains an issue. I now have a fix for this issue as well.

 So now the question is: should we close this issue, since it is specific
 to `forkProcess` and create a separate issue for programs calling
 `hs_exit()`? Or should we solve both of these issues in this issue?

--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/9284#comment:12>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler


More information about the ghc-tickets mailing list