patch applied (ghc-6.6/ghc): Add support for the IO manager thread on Windows

Ian Lynagh <[email protected]>
Newsgroups gmane.comp.lang.haskell.cvs.all
Message-ID <20061219203131.GA14536__6265.65553616292$1166560340$gmane$org@cvs.haskell.org>
Fri Dec  1 06:48:23 PST 2006  Simon Marlow <[email protected]>
  * Add support for the IO manager thread on Windows
  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.

    M ./includes/RtsExternal.h -1 +10
    M ./rts/Prelude.h -2
    M ./rts/RtsStartup.c -2 +3
    M ./rts/Schedule.c -9 +3
    A ./rts/ThrIOManager.h
    M ./rts/posix/Signals.h -6
    M ./rts/win32/ConsoleHandler.c -13 +23
    M ./rts/win32/ConsoleHandler.h -3 +12
    A ./rts/win32/ThrIOManager.c
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.