Skip to content
  • bos's avatar
    Fix #4514 - IO manager deadlock · 79cf73c5
    bos authored
    * 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.
    79cf73c5