simonmar    2004/10/14 07:58:52 PDT

  Modified files:
    ghc/rts              Capability.c Capability.h PrimOps.cmm 
                         Schedule.c Schedule.h Select.c Signals.c 
                         Signals.h 
    libraries/base/GHC   Conc.lhs 
    libraries/base/include HsBase.h 
  Added files:
    libraries/base/cbits selectUtils.c 
  Log:
  Threaded RTS improvements:
  
   - Unix only: implement waitRead#, waitWrite# and delay# in Haskell,
     by having a single Haskell thread (the IO manager) performing a blocking
     select() operation.  Threads communicate with the IO manager
     via channels.  This is faster than doing the select() in the RTS,
     because we only restart the select() when a new request arrives,
     rather than each time around the scheduler.
  
     On Windows we just make blocking IO calls, we don't have a fancy IO
     manager (yet).
  
   - Simplify the scheduler for the threaded RTS, now that we don't have
     to wait for IO in the scheduler loop.
  
   - Remove detectBlackHoles(), which isn't used now (not sure how long
     this has been unused for... perhaps it was needed back when main threads
     used to be GC roots, so we had to check for blackholes manually rather
     than relying on the GC.)
  
  Signals aren't quite right in the threaded RTS.  In fact, they're
  slightly worse than before, because the thread receiving signals might
  be blocked in a C call - previously there always be another thread
  stuck in awaitEvent() that would notice the signal, but that's not
  true now.  I can't see an easy fix yet.
  
  Revision  Changes    Path
  1.30      +44 -9     fptools/ghc/rts/Capability.c
  1.15      +4 -0      fptools/ghc/rts/Capability.h
  1.6       +20 -0     fptools/ghc/rts/PrimOps.cmm
  1.206     +13 -94    fptools/ghc/rts/Schedule.c
  1.49      +0 -12     fptools/ghc/rts/Schedule.h
  1.35      +0 -103    fptools/ghc/rts/Select.c
  1.44      +8 -5      fptools/ghc/rts/Signals.c
  1.14      +1 -0      fptools/ghc/rts/Signals.h
  1.25      +323 -32   fptools/libraries/base/GHC/Conc.lhs
  1.62      +38 -0     fptools/libraries/base/include/HsBase.h
_______________________________________________
Cvs-libraries mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/cvs-libraries

Reply via email to