diff options
author | Simon Marlow <simonmar@microsoft.com> | 2008-01-09 14:49:37 +0000 |
---|---|---|
committer | Simon Marlow <simonmar@microsoft.com> | 2008-01-09 14:49:37 +0000 |
commit | e5601110f37f48771b9e62296770a29e79d96e28 (patch) | |
tree | 8a8e8b81351db56179f6e3a6a343418a12006924 /rts | |
parent | ddacc40c5275110a2a17402bab704bac371cf001 (diff) | |
download | haskell-e5601110f37f48771b9e62296770a29e79d96e28.tar.gz |
Fix bug: eval_thunk_selector was calling the unlocked evacuate()
Diffstat (limited to 'rts')
-rw-r--r-- | rts/sm/Evac.c-inc | 6 | ||||
-rw-r--r-- | rts/sm/Scav.c-inc | 1 |
2 files changed, 7 insertions, 0 deletions
diff --git a/rts/sm/Evac.c-inc b/rts/sm/Evac.c-inc index 7e1045273c..4fe9d5dacc 100644 --- a/rts/sm/Evac.c-inc +++ b/rts/sm/Evac.c-inc @@ -39,6 +39,7 @@ copy_tag(StgClosure **p, StgClosure *src, nat size, step *stp, StgWord tag) return evacuate(p); // does the failed_to_evac stuff } #else + ASSERT(n_gc_threads == 1); info = (W_)src->header.info; src->header.info = &stg_EVACUATED_info; #endif @@ -563,3 +564,8 @@ loop: barf("evacuate"); } + +#undef copy +#undef copy_tag +#undef copyPart +#undef evacuate diff --git a/rts/sm/Scav.c-inc b/rts/sm/Scav.c-inc index 2206dd3994..e9aeb2c934 100644 --- a/rts/sm/Scav.c-inc +++ b/rts/sm/Scav.c-inc @@ -20,6 +20,7 @@ #else #undef scavenge_block #undef evacuate +#undef recordMutableGen_GC #endif static void scavenge_block (bdescr *bd, StgPtr scan); |