patch applied (ghc-7.0/packages/base): Fix #4514 - IO manager deadlock

Ian Lynagh igloo at earth.li
Mon Dec 13 18:06:57 CET 2010


Fri Nov 26 15:28:10 PST 2010  Bryan O'Sullivan <bos at serpentine.com>
  * Fix #4514 - IO manager deadlock
  
  * The public APIs for threadWaitRead and threadWaitWrite remain unchanged,
    and now throw an IOError if a file descriptor is closed behind their
    backs.  This behaviour is documented.
  
  * The GHC.Conc API is extended to add a closeFd function, the behaviour
    of which is documented.
  
  * Behind the scenes, we add a new evtClose event, which is used only when
    one thread closes a file descriptor that other threads are blocking on.
  
  * Both base's IO code and network use the new closeFd function.
  

    M ./Control/Concurrent.hs +25
    M ./GHC/Conc.lhs +1
    M ./GHC/Conc/IO.hs +21
    M ./GHC/IO/FD.hs -5 +7
    M ./System/Event.hs -1 +1
    M ./System/Event/Internal.hs -2 +12
    M ./System/Event/Manager.hs -9 +12
    M ./System/Event/Thread.hs -2 +29

View patch online:
http://darcs.haskell.org/cgi-bin/darcsweb.cgi?r=ghc-7.0/packages/base;a=darcs_commitdiff;h=20101126232810-00f12-2273458e1735ef94b728a2a7e54b175a858db7e0.gz



More information about the Cvs-libraries mailing list