Thu Oct 11 06:55:05 PDT 2007  Simon Marlow <[EMAIL PROTECTED]>
  * Add a proper write barrier for MVars
  Previously MVars were always on the mutable list of the old
  generation, which meant every MVar was visited during every minor GC.
  With lots of MVars hanging around, this gets expensive.  We addressed
  this problem for MUT_VARs (aka IORefs) a while ago, the solution is to
  use a traditional GC write-barrier when the object is modified.  This
  patch does the same thing for MVars.
  
  TVars are still done the old way, they could probably benefit from the
  same treatment too.

    M ./includes/ClosureTypes.h -27 +28
    M ./includes/RtsExternal.h +3
    M ./includes/StgMiscClosures.h -2 +2
    M ./rts/ClosureFlags.c -2 +3
    M ./rts/HeapStackCheck.cmm -2 +6
    M ./rts/LdvProfile.c -1 +2
    M ./rts/Linker.c -1 +2
    M ./rts/PrimOps.cmm -20 +45
    M ./rts/Printer.c -1 +2
    M ./rts/ProfHeap.c -2 +4
    M ./rts/RaiseAsync.c -1 +7
    M ./rts/RetainerProfile.c -3 +6
    M ./rts/Sanity.c -1 +2
    M ./rts/StgMiscClosures.cmm -4 +4
    M ./rts/sm/Compact.c -1 +2
    M ./rts/sm/Evac.c -1 +2
    M ./rts/sm/GC.c -2 +3
    M ./rts/sm/GC.h -1 +1
    M ./rts/sm/Scav.c -19 +47
    M ./rts/sm/Storage.c -2 +22

_______________________________________________
Cvs-ghc mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/cvs-ghc

Reply via email to