[project @ 2003-02-22 04:51:50 by sof]
authorsof <unknown>
Sat, 22 Feb 2003 04:51:58 +0000 (04:51 +0000)
committersof <unknown>
Sat, 22 Feb 2003 04:51:58 +0000 (04:51 +0000)
commit557947d3f93e11285e36423ddb08d859af60ab47
treea7f9e5d3fe625a471943c16dcfcb215b24b64f25
parentd6b7d200353e0bcc5a19a43caf252f37dee5bc6c
[project @ 2003-02-22 04:51:50 by sof]
Clean up code&interfaces that deals with timers and asynchrony:

- Timer.{c,h} now defines the platform-independent interface
  to the timing services needed by the RTS. Itimer.{c,h} +
  win32/Ticker.{c,h} defines the OS-specific services that
  creates/destroys a timer.
- For win32 plats, drop the long-standing use of the 'multimedia'
  API timers and implement the ticking service ourselves. Simpler
  and more flexible.
- Select.c is now solely for platforms that use select() to handle
  non-blocking I/O & thread delays. win32/AwaitEvent.c provides
  the same API on the Win32 side.
- support threadDelay on win32 platforms via worker threads.

Not yet compiled up on non-win32 platforms; will do once checked in.
20 files changed:
ghc/rts/Itimer.c
ghc/rts/Itimer.h
ghc/rts/LdvProfile.c
ghc/rts/PrimOps.hc
ghc/rts/Profiling.c
ghc/rts/Proftimer.c
ghc/rts/RetainerProfile.c
ghc/rts/RtsFlags.c
ghc/rts/RtsStartup.c
ghc/rts/Schedule.c
ghc/rts/Select.c
ghc/rts/Timer.c [new file with mode: 0644]
ghc/rts/Timer.h [new file with mode: 0644]
ghc/rts/rts.conf.in
ghc/rts/win32/AsyncIO.c
ghc/rts/win32/AsyncIO.h
ghc/rts/win32/AwaitEvent.c [new file with mode: 0644]
ghc/rts/win32/IOManager.c
ghc/rts/win32/Ticker.c [new file with mode: 0644]
ghc/rts/win32/Ticker.h [new file with mode: 0644]