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
_______________________________________________
Cvs-ghc mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/cvs-ghc