X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=blobdiff_plain;f=rts%2FSparks.c;h=c7a1c9f98a8da7c148a496238c43aca17e3bfb3f;hp=68ad19ddd3939ba112040ffe641bb4b9de5ffe24;hb=2f6ad11fa0c2995d950c91fd4301f23aceeb443b;hpb=5a2769f0273dd389977e8283375e7920d183bdd4 diff --git a/rts/Sparks.c b/rts/Sparks.c index 68ad19d..c7a1c9f 100644 --- a/rts/Sparks.c +++ b/rts/Sparks.c @@ -129,13 +129,15 @@ markSparkQueue (evac_fn evac) sparkp = pool->hd; to_sparkp = pool->hd; while (sparkp != pool->tl) { - ASSERT(to_sparkp<=sparkp); ASSERT(*sparkp!=NULL); ASSERT(LOOKS_LIKE_CLOSURE_PTR(((StgClosure *)*sparkp))); // ToDo?: statistics gathering here (also for GUM!) if (closure_SHOULD_SPARK(*sparkp)) { evac(sparkp); *to_sparkp++ = *sparkp; + if (to_sparkp == pool->lim) { + to_sparkp = pool->base; + } n++; } else { pruned_sparks++;