X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=rts%2Fsm%2FEvac.c;h=736c6c8d888a57a2af2cea966e594afe58fcc3a6;hb=66579ff945831c5fc9a17c58c722ff01f2268d76;hp=9b42fc12be993d1d3aa233d5c029af2db9602fb5;hpb=81af806b823c3dd633a7c102b1fa6afbf89f16ef;p=ghc-hetmet.git diff --git a/rts/sm/Evac.c b/rts/sm/Evac.c index 9b42fc1..736c6c8 100644 --- a/rts/sm/Evac.c +++ b/rts/sm/Evac.c @@ -837,6 +837,11 @@ selector_chain: if (bd->flags & BF_EVACUATED) { unchain_thunk_selectors(prev_thunk_selector, (StgClosure *)p); *q = (StgClosure *)p; + // shortcut, behave as for: if (evac) evacuate(q); + if (evac && bd->step < gct->evac_step) { + gct->failed_to_evac = rtsTrue; + TICK_GC_FAILED_PROMOTION(); + } return; } // we don't update THUNK_SELECTORS in the compacted