Skip to content
  • Simon Marlow's avatar
    Add support for the IO manager thread on Windows · 80a766fd
    Simon Marlow authored
    Fixes #637.
    The implications of this change are:
      - threadDelay on Windows no longer creates a new OS thread each time,
        instead it communicates with the IO manager thread in the same way as
        on Unix.
      - deadlock detection now works the same way on Windows as on Unix; that
        is the timer interrupt wakes up the IO manager thread, which causes
        the scheduler to check for deadlock.
      - Console events now get sent to the IO manager thread, in the same way as
        signals do on Unix.  This means that console events should behave more
        reliably with -threaded on Windows.
    
    All this applies only with -threaded.  Without -threaded, the old
    ConsoleEvent code is still used.
    
    After some testing, this could be pushed to the 6.6 branch.
    80a766fd