[project @ 1999-08-25 16:11:43 by simonmar]
authorsimonmar <unknown>
Wed, 25 Aug 1999 16:11:56 +0000 (16:11 +0000)
committersimonmar <unknown>
Wed, 25 Aug 1999 16:11:56 +0000 (16:11 +0000)
commitc6ab4bfa09886be3bfff4aa747af2f1c8e348a1f
tree98094337759248acc79dcd571cbccb43f1cc28ea
parent983f86ef4185b3cfe0f4fe336a5d8351a72a77dc
[project @ 1999-08-25 16:11:43 by simonmar]
Support for thread{WaitRead,WaitWrite,Delay}.  These should behave
identically to the 3.02 implementations.

We now have the virtual timer on during all program runs, which ticks
at 50Hz by default.  This is used to implement threadDelay, so you
won't get any better granularity than the tick frequency
unfortunately.  It remains to be seen whether using the virtual timer
will have a measurable impact on performance for non-threadDelaying
programs.

All operations in the I/O subsystem should now be non-blocking with
respect to other running Haskell threads.  It remains to be seen
whether this will have a measurable performance impact on
non-concurrent programs (probably not).
22 files changed:
ghc/includes/PrimOps.h
ghc/includes/Rts.h
ghc/includes/TSO.h
ghc/includes/Updates.h
ghc/lib/concurrent/Concurrent.lhs
ghc/rts/GC.c
ghc/rts/HeapStackCheck.h
ghc/rts/HeapStackCheck.hc
ghc/rts/Itimer.c
ghc/rts/Itimer.h
ghc/rts/PrimOps.hc
ghc/rts/ProfRts.h
ghc/rts/Profiling.c
ghc/rts/Proftimer.c
ghc/rts/Proftimer.h
ghc/rts/RtsFlags.c
ghc/rts/RtsFlags.h
ghc/rts/RtsStartup.c
ghc/rts/RtsUtils.c
ghc/rts/Schedule.c
ghc/rts/Schedule.h
ghc/rts/StgMiscClosures.hc