diff options
author | Simon Marlow <marlowsd@gmail.com> | 2008-09-09 13:33:07 +0000 |
---|---|---|
committer | Simon Marlow <marlowsd@gmail.com> | 2008-09-09 13:33:07 +0000 |
commit | 128a7fae5da321c24008b1d53ece0a8b58912c82 (patch) | |
tree | 50d33fb9b99baefa466308b95d2bc30c8d74bb34 /rts | |
parent | d572aed64d9c40dcc38a49b09d18f301555e4efb (diff) | |
download | haskell-128a7fae5da321c24008b1d53ece0a8b58912c82.tar.gz |
small bugfix in traverseBlackHoleQueue()
Diffstat (limited to 'rts')
-rw-r--r-- | rts/sm/MarkWeak.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/rts/sm/MarkWeak.c b/rts/sm/MarkWeak.c index 96b4f674f3..3d80357cc4 100644 --- a/rts/sm/MarkWeak.c +++ b/rts/sm/MarkWeak.c @@ -341,7 +341,11 @@ traverseBlackholeQueue (void) } } evacuate((StgClosure **)&t); - if (prev) prev->_link = t; + if (prev) { + prev->_link = t; + } else { + blackhole_queue = t; + } // no write barrier when on the blackhole queue, // because we traverse the whole queue on every GC. flag = rtsTrue; |