Skip to content
  • Simon Marlow's avatar
    80a766fd
    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
    Add support for the IO manager thread on Windows
    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.
Loading