summaryrefslogtreecommitdiff
path: root/rts/sm/Scav.c
diff options
context:
space:
mode:
authorSimon Marlow <marlowsd@gmail.com>2009-12-08 08:57:39 +0000
committerSimon Marlow <marlowsd@gmail.com>2009-12-08 08:57:39 +0000
commit4207605cc8e035e05f651334ef1be90b098d305d (patch)
treeb2a270e815671e0746a20b99b79730793f29747e /rts/sm/Scav.c
parent34bb8868a99962ede85ab7fa67c43fb922d78fc6 (diff)
downloadhaskell-4207605cc8e035e05f651334ef1be90b098d305d.tar.gz
simplification/optimisation: update tso->bound->tso when scavenging the TSO
Diffstat (limited to 'rts/sm/Scav.c')
-rw-r--r--rts/sm/Scav.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/rts/sm/Scav.c b/rts/sm/Scav.c
index b34aca62b8..4fa0a220e0 100644
--- a/rts/sm/Scav.c
+++ b/rts/sm/Scav.c
@@ -73,6 +73,11 @@ scavengeTSO (StgTSO *tso)
debugTrace(DEBUG_gc,"scavenging thread %d",(int)tso->id);
+ // update the pointer from the Task.
+ if (tso->bound != NULL) {
+ tso->bound->tso = tso;
+ }
+
saved_eager = gct->eager_promotion;
gct->eager_promotion = rtsFalse;