Skip to content
  • Simon Marlow's avatar
    Better control of the IO manager thread; improvements to deadlock checking · 7a1f8fbd
    Simon Marlow authored
        
    In the threaded RTS on *nix platforms:
        
     - we now start the IO manager thread eagerly at startup time
       (previously was started on demand).
    
     - we now ask the IO manager thread to stop at shutdown
        
     - In Timer.c:handle_tick, if it looks like we might be in a
       deadlock, instead of calling prodOneCapability() which was known to be
       wrong, we now send a byte down the IO manager's pipe to wake it up.
      
    This also avoids a case of double-acquisition of a mutex, which
    happened if prodOneCapability() was called while the current thread
    was holding a mutex.
    7a1f8fbd