summaryrefslogtreecommitdiff
path: root/rts
diff options
context:
space:
mode:
authorSimon Marlow <marlowsd@gmail.com>2008-06-16 07:31:11 +0000
committerSimon Marlow <marlowsd@gmail.com>2008-06-16 07:31:11 +0000
commit3e140bdf457f0c4c762ba344f396d84afef6d8f4 (patch)
tree3fe976a1e0ffc81be0ff8d88649ec3dc0256ba63 /rts
parent4d15b247104d9cfe36a4e29f7df00e582e7ec9f0 (diff)
downloadhaskell-3e140bdf457f0c4c762ba344f396d84afef6d8f4.tar.gz
don't try to parallelise marking GC (yet)
Diffstat (limited to 'rts')
-rw-r--r--rts/sm/GC.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/rts/sm/GC.c b/rts/sm/GC.c
index 165c7066b5..e0792d970d 100644
--- a/rts/sm/GC.c
+++ b/rts/sm/GC.c
@@ -243,10 +243,10 @@ GarbageCollect ( rtsBool force_major_gc )
start_gc_threads();
/* How many threads will be participating in this GC?
- * We don't try to parallelise minor GC.
+ * We don't try to parallelise minor GC, or mark/compact/sweep GC.
*/
#if defined(THREADED_RTS)
- if (n < (4*1024*1024 / BLOCK_SIZE)) {
+ if (n < (4*1024*1024 / BLOCK_SIZE) || oldest_gen->steps[0].mark) {
n_gc_threads = 1;
} else {
n_gc_threads = RtsFlags.ParFlags.gcThreads;