From 5b726bda032c2015a34131c41d1d338cc759736f Mon Sep 17 00:00:00 2001 From: Simon Marlow Date: Wed, 28 May 2008 06:39:04 +0000 Subject: [PATCH] FIX #2164: check for ThreadRelocated in isAlive() --- rts/sm/GCAux.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/rts/sm/GCAux.c b/rts/sm/GCAux.c index 825d0f9..48179f7 100644 --- a/rts/sm/GCAux.c +++ b/rts/sm/GCAux.c @@ -62,6 +62,11 @@ isAlive(StgClosure *p) // large objects use the evacuated flag if (bd->flags & BF_LARGE) { + if (get_itbl(q)->type == TSO && + ((StgTSO *)p)->what_next == ThreadRelocated) { + p = (StgClosure *)((StgTSO *)p)->_link; + continue; + } return NULL; } -- 1.7.10.4