[project @ 1999-11-09 15:46:49 by simonmar]
authorsimonmar <unknown>
Tue, 9 Nov 1999 15:47:09 +0000 (15:47 +0000)
committersimonmar <unknown>
Tue, 9 Nov 1999 15:47:09 +0000 (15:47 +0000)
commit30681e796f707fa109aaf756d4586049f595195d
treef77cf12b7e3437cc40e3bedcedd3bc50d4a040df
parent532fc33149d79e65f27459e359b4d861e599761f
[project @ 1999-11-09 15:46:49 by simonmar]
A slew of SMP-related changes.

 - New locking scheme for thunks: we now check whether the thunk
   being entered is in our private allocation area, and if so
   we don't lock it.  Well, that's the upshot.  In practice it's
   a lot more fiddly than that.

 - I/O blocking is handled a bit more sanely now (but still not
   properly, methinks)

 - deadlock detection is back

 - remove old pre-SMP scheduler code

 - revamp the timing code.  We actually get reasonable-looking
   timing info for SMP programs now.

 - fix a bug in the garbage collector to do with IND_OLDGENs appearing
   on the mutable list of the old generation.

 - move BDescr() function from rts/BlockAlloc.h to includes/Block.h.

 - move struct generation and struct step into includes/StgStorage.h (sigh)

 - add UPD_IND_NOLOCK for updating with an indirection where locking
   the black hole is not required.
22 files changed:
ghc/includes/Block.h
ghc/includes/Regs.h
ghc/includes/Rts.h
ghc/includes/Stg.h
ghc/includes/StgMacros.h
ghc/includes/StgStorage.h
ghc/includes/Updates.h
ghc/rts/BlockAlloc.h
ghc/rts/ClosureFlags.c
ghc/rts/GC.c
ghc/rts/HeapStackCheck.hc
ghc/rts/PrimOps.hc
ghc/rts/Schedule.c
ghc/rts/Schedule.h
ghc/rts/Signals.c
ghc/rts/Stats.c
ghc/rts/Stats.h
ghc/rts/StgStdThunks.hc
ghc/rts/Storage.c
ghc/rts/Storage.h
ghc/rts/StoragePriv.h
ghc/rts/Updates.hc