patch applied (ghc-6.10/packages/base): Rewrite of signal-handling (base patch; see also ghc and unix patches)

Ian Lynagh igloo at earth.li
Sat Feb 21 10:22:46 EST 2009


Thu Feb 19 02:22:03 PST 2009  Simon Marlow <marlowsd at gmail.com>
  * Rewrite of signal-handling (base patch; see also ghc and unix patches)
  Ignore-this: 2122e05eaaab184b9ef0f269ce4c9282
  
  The API is the same (for now).  The new implementation has the
  capability to define signal handlers that have access to the siginfo
  of the signal (#592), but this functionality is not exposed in this
  patch.
  
  #2451 is the ticket for the new API.
  
  The main purpose of bringing this in now is to fix race conditions in
  the old signal handling code (#2858).  Later we can enable the new
  API in the HEAD.
  
  Implementation differences:
  
   - More of the signal-handling is moved into Haskell.  We store the
     table of signal handlers in an MVar, rather than having a table of
     StablePtrs in the RTS.
  
   - In the threaded RTS, the siginfo of the signal is passed down the
     pipe to the IO manager thread, which manages the business of
     starting up new signal handler threads.  In the non-threaded RTS,
     the siginfo of caught signals is stored in the RTS, and the
     scheduler starts new signal handler threads.

    M ./GHC/Conc.lhs -24 +94
    M ./GHC/IOBase.lhs -1 +5
    M ./GHC/TopHandler.lhs -15 +7
    M ./include/HsBase.h +7

View patch online:
http://darcs.haskell.org/ghc-6.10/packages/base/_darcs/patches/20090219102203-12142-c5103ed3a14f6ae86a7dd53f211998d85de75604.gz


More information about the Cvs-libraries mailing list