SysTools no longer needs -fno-cse
[ghc-hetmet.git] / rts / sm / Compact.c
index bb4d838..fcd7cb1 100644 (file)
@@ -84,7 +84,7 @@ thread (StgClosure **p)
     if (HEAP_ALLOCED(q)) {
        bd = Bdescr(q); 
 
-       if (bd->flags & BF_COMPACTED)
+       if (bd->flags & BF_MARKED)
         {
             iptr = *q;
             switch (GET_CLOSURE_TAG((StgClosure *)iptr))
@@ -621,8 +621,6 @@ thread_obj (StgInfoTable *info, StgPtr p)
     case MUT_VAR_CLEAN:
     case MUT_VAR_DIRTY:
     case CAF_BLACKHOLE:
-    case SE_CAF_BLACKHOLE:
-    case SE_BLACKHOLE:
     case BLACKHOLE:
     {
        StgPtr end;
@@ -966,9 +964,6 @@ compact(StgClosure *static_objects)
     // 1. thread the roots
     markCapabilities((evac_fn)thread_root, NULL);
 
-    // spark queues
-    traverseSparkQueues((evac_fn)thread_root, NULL);
-
     // the weak pointer lists...
     if (weak_ptr_list != NULL) {
        thread((void *)&weak_ptr_list);
@@ -996,6 +991,9 @@ compact(StgClosure *static_objects)
     // any threads resurrected during this GC
     thread((void *)&resurrected_threads);
 
+    // the blackhole queue
+    thread((void *)&blackhole_queue);
+
     // the task list
     {
        Task *task;