[GHC] #2301: Proper handling of SIGINT/SIGQUIT

GHC ghc-devs at haskell.org
Fri Nov 15 11:49:54 UTC 2013


#2301: Proper handling of SIGINT/SIGQUIT
-------------------------------------+-------------------------------------
        Reporter:  duncan            |            Owner:
            Type:  bug               |           Status:  new
        Priority:  high              |        Milestone:  7.8.1
       Component:                    |          Version:  6.12.3
  libraries/process                  |         Keywords:
      Resolution:                    |     Architecture:  Unknown/Multiple
Operating System:  POSIX             |       Difficulty:  Unknown
 Type of failure:  Incorrect result  |       Blocked By:
  at runtime                         |  Related Tickets:
       Test Case:                    |  #3994,#5766,#7229,#4274,#3318,#1619
        Blocking:                    |
-------------------------------------+-------------------------------------

Comment (by simonmar):

 If `waitForProcess` is called by a forkIO'd thread, then `UserInterrupt`
 doesn't cause the process to die with `SIGINT`.  Normally a `SIGINT`
 causes the main thread to receive `UserInterrupt`, and the top handler for
 the main thread turns this into a `SIGINT` again.

 What should happen?  Maybe this: if a `UserInterrupt` in a child thread
 were to throw a `SIGINT` at the current process, then it would be caught
 by the handler, causing a `UserInterrupt` to be thrown to the main thread,
 which would eventually throw a `SIGINT` again to kill the process.

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


More information about the ghc-tickets mailing list