[project @ 2006-01-09 14:25:44 by simonmar]
[ghc-hetmet.git] / ghc / rts / GCCompact.c
index ad7638d..e53429c 100644 (file)
@@ -688,9 +688,6 @@ thread_obj (StgInfoTable *info, StgPtr p)
         StgTVar *tvar = (StgTVar *)p;
        thread((StgPtr)&tvar->current_value);
        thread((StgPtr)&tvar->first_wait_queue_entry);
-#if defined(SMP)
-       thread((StgPtr)&tvar->last_update_by);
-#endif
        return p + sizeofW(StgTVar);
     }
     
@@ -917,7 +914,6 @@ update_bkwd_compact( step *stp )
        freeChain(free_bd->link);
        free_bd->link = NULL;
     }
-    stp->n_old_blocks = free_blocks;
 
     return free_blocks;
 }
@@ -956,11 +952,13 @@ compact( void (*get_roots)(evac_fn) )
     // any threads resurrected during this GC
     thread((StgPtr)&resurrected_threads);
 
-    // the main threads list
+    // the task list
     {
-       StgMainThread *m;
-       for (m = main_threads; m != NULL; m = m->link) {
-           thread((StgPtr)&m->tso);
+       Task *task;
+       for (task = all_tasks; task != NULL; task = task->all_link) {
+           if (task->tso) {
+               thread((StgPtr)&task->tso);
+           }
        }
     }