diff options
author | Simon Marlow <marlowsd@gmail.com> | 2009-11-23 11:04:16 +0000 |
---|---|---|
committer | Simon Marlow <marlowsd@gmail.com> | 2009-11-23 11:04:16 +0000 |
commit | ce7bf1839d868fd829f0224b226da54612ac0e88 (patch) | |
tree | 0f708636bff00d4f03920ccb9b098291306bde6e /rts | |
parent | b7a8d2059f982599d31d14395c6628a049ec5179 (diff) | |
download | haskell-ce7bf1839d868fd829f0224b226da54612ac0e88.tar.gz |
disable a false assertion, add a comment to explain why
Diffstat (limited to 'rts')
-rw-r--r-- | rts/sm/Scav.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/rts/sm/Scav.c b/rts/sm/Scav.c index a2ee1ced27..466b9b44f7 100644 --- a/rts/sm/Scav.c +++ b/rts/sm/Scav.c @@ -1490,9 +1490,11 @@ scavenge_mutable_list(bdescr *bd, generation *gen) case TSO: { StgTSO *tso = (StgTSO *)p; if (tso->dirty == 0) { - // Must be on the mutable list because its link - // field is dirty. - ASSERT(tso->flags & TSO_LINK_DIRTY); + // Should be on the mutable list because its link + // field is dirty. However, in parallel GC we may + // have a thread on multiple mutable lists, so + // this assertion would be invalid: + // ASSERT(tso->flags & TSO_LINK_DIRTY); scavenge_TSO_link(tso); if (gct->failed_to_evac) { |