summaryrefslogtreecommitdiff
path: root/rts/sm/Scav.c
diff options
context:
space:
mode:
authorTakano Akio <tak@anoak.io>2016-05-12 15:45:44 +0200
committerBen Gamari <ben@smart-cactus.org>2016-05-12 17:33:39 +0200
commit7c0b595e55d31f9f89e6dede11981e942c5bb32f (patch)
treec702a17798f2a9629d648e01eed90b4fe0819057 /rts/sm/Scav.c
parent0c0129b6a82a87a9bba19f27a4b19fec9ccc5a8d (diff)
downloadhaskell-7c0b595e55d31f9f89e6dede11981e942c5bb32f.tar.gz
Fix comments about scavenging WEAK objects
This is a follow-up of D2189. If fixes some comments, deletes a section in the User's Guide about the bug, and updates .mailmap as suggested on the WorkinConventions wiki page. Test Plan: It compiles. Reviewers: austin, simonmar, bgamari Reviewed By: bgamari Subscribers: thomie Differential Revision: https://phabricator.haskell.org/D2202 GHC Trac Issues: #11108
Diffstat (limited to 'rts/sm/Scav.c')
-rw-r--r--rts/sm/Scav.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/rts/sm/Scav.c b/rts/sm/Scav.c
index b046f39ad5..7a799d6be6 100644
--- a/rts/sm/Scav.c
+++ b/rts/sm/Scav.c
@@ -1300,6 +1300,10 @@ scavenge_one(StgPtr p)
}
case WEAK:
+ // This WEAK object will not be considered by tidyWeakList during this
+ // collection because it is in a generation >= N, but it is on the
+ // mutable list so we must evacuate all of its pointers because some
+ // of them may point into a younger generation.
scavengeLiveWeak((StgWeak *)p);
break;