diff options
author | Ben.Lippmeier@anu.edu.au <unknown> | 2010-02-22 03:16:27 +0000 |
---|---|---|
committer | Ben.Lippmeier@anu.edu.au <unknown> | 2010-02-22 03:16:27 +0000 |
commit | c24c65f518f153ff59acf27417fa36c14365951e (patch) | |
tree | 61b739e5e1582da0b0d0a89fca4ccced4476378d /rts/sm | |
parent | 390708b553cab55e270359e79fe15d1da4ecec08 (diff) | |
download | haskell-c24c65f518f153ff59acf27417fa36c14365951e.tar.gz |
Fix #3875: Crash in parallel GC, wrong pointer was being tested.
Diffstat (limited to 'rts/sm')
-rw-r--r-- | rts/sm/Evac.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/rts/sm/Evac.c b/rts/sm/Evac.c index db249094e0..76026b0bac 100644 --- a/rts/sm/Evac.c +++ b/rts/sm/Evac.c @@ -878,7 +878,7 @@ selector_chain: } while (info_ptr == (W_)&stg_WHITEHOLE_info); // make sure someone else didn't get here first... - if (IS_FORWARDING_PTR(p) || + if (IS_FORWARDING_PTR(info_ptr) || INFO_PTR_TO_STRUCT(info_ptr)->type != THUNK_SELECTOR) { // v. tricky now. The THUNK_SELECTOR has been evacuated // by another thread, and is now either a forwarding ptr or IND. |