summaryrefslogtreecommitdiff
path: root/rts/sm/GCAux.c
diff options
context:
space:
mode:
authorSimon Marlow <marlowsd@gmail.com>2009-03-09 12:13:00 +0000
committerSimon Marlow <marlowsd@gmail.com>2009-03-09 12:13:00 +0000
commit9fe7b8ea2136a4a07752b2851840c9366706f832 (patch)
treecc60d55de58895f8e82432c84711fa0d63544fa2 /rts/sm/GCAux.c
parent1b62aecee4a58f52999cfa53f1c6b7744b29b808 (diff)
downloadhaskell-9fe7b8ea2136a4a07752b2851840c9366706f832.tar.gz
Redesign 64-bit HEAP_ALLOCED (FIX #2934 at the same time)
After much experimentation, I've found a formulation for HEAP_ALLOCED that (a) improves performance, and (b) doesn't have any race conditions when used concurrently. GC performance on x86_64 should be improved slightly. See extensive comments in MBlock.h for the details.
Diffstat (limited to 'rts/sm/GCAux.c')
-rw-r--r--rts/sm/GCAux.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/rts/sm/GCAux.c b/rts/sm/GCAux.c
index 66806f4d3f..c1ff54123d 100644
--- a/rts/sm/GCAux.c
+++ b/rts/sm/GCAux.c
@@ -48,7 +48,7 @@ isAlive(StgClosure *p)
// Problem here is that we sometimes don't set the link field, eg.
// for static closures with an empty SRT or CONSTR_STATIC_NOCAFs.
//
- if (!HEAP_ALLOCED(q)) {
+ if (!HEAP_ALLOCED_GC(q)) {
return p;
}