X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=rts%2Fsm%2FCompact.c;h=fcd7cb16ed33ed306d032464675bff919d75a163;hb=c933c909cbc122e63a055afed55969234422521a;hp=bb4d8388c29e12a4e68939f0fbbe204728f1e99a;hpb=01ccdeea34b4853750326126f3bff9b2bdfa9a32;p=ghc-hetmet.git diff --git a/rts/sm/Compact.c b/rts/sm/Compact.c index bb4d838..fcd7cb1 100644 --- a/rts/sm/Compact.c +++ b/rts/sm/Compact.c @@ -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;