simonmar    2005/10/27 08:26:06 PDT

  Modified files:
    ghc/rts              Capability.c Capability.h GC.c Schedule.c 
                         Storage.c 
  Added files:
    ghc/rts              Updates.h 
  Removed files:
    ghc/includes         Updates.h 
  Log:
  - Very simple work-sharing amongst Capabilities: whenever a Capability
    detects that it has more than 1 thread in its run queue, it runs
    around looking for empty Capabilities, and shares the threads on its
    run queue equally with the free Capabilities it finds.
  
  - unlock the garbage collector's mutable lists, by having private
    mutable lists per capability (and per generation).  The private
    mutable lists are moved onto the main mutable lists at each GC.
    This pulls the old-generation update code out of the storage manager
    mutex, which is one of the last remaining causes of (alleged) contention.
  
  - Fix some problems with synchronising when a GC is required.  We should
    synchronise quicker now.
  
  Revision  Changes    Path
  1.44      +27 -0     fptools/ghc/rts/Capability.c
  1.27      +32 -0     fptools/ghc/rts/Capability.h
  1.203     +18 -1     fptools/ghc/rts/GC.c
  1.268     +148 -40   fptools/ghc/rts/Schedule.c
  1.107     +5 -0      fptools/ghc/rts/Storage.c
_______________________________________________
Cvs-ghc mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/cvs-ghc

Reply via email to