/* -----------------------------------------------------------------------------
*
- * (c) The GHC Team 2001
+ * (c) The GHC Team 2001-2006
*
* Compacting garbage collector
*
+ * Documentation on the architecture of the Garbage Collector can be
+ * found in the online commentary:
+ *
+ * http://hackage.haskell.org/trac/ghc/wiki/Commentary/Rts/Storage/GC
+ *
* ---------------------------------------------------------------------------*/
#include "PosixSource.h"
#include "RtsUtils.h"
#include "RtsFlags.h"
#include "OSThreads.h"
-#include "Storage.h"
-#include "Stable.h"
#include "BlockAlloc.h"
#include "MBlock.h"
#include "GC.h"
if ( tso->why_blocked == BlockedOnMVar
|| tso->why_blocked == BlockedOnBlackHole
|| tso->why_blocked == BlockedOnException
-#if defined(PAR)
- || tso->why_blocked == BlockedOnGA
- || tso->why_blocked == BlockedOnGA_NoSend
-#endif
) {
thread_(&tso->block_info.closure);
}
bd = blocks;
-#if defined(PAR)
- barf("update_fwd: ToDo");
-#endif
-
// cycle through all the blocks in the step
for (; bd != NULL; bd = bd->link) {
p = bd->start;
free_bd = blocks;
free = free_bd->start;
-#if defined(PAR)
- barf("update_fwd: ToDo");
-#endif
-
// cycle through all the blocks in the step
for (; bd != NULL; bd = bd->link) {
p = bd->start;
free = free_bd->start;
free_blocks = 1;
-#if defined(PAR)
- barf("update_bkwd: ToDo");
-#endif
-
// cycle through all the blocks in the step
for (; bd != NULL; bd = bd->link) {
p = bd->start;