don't try to parallelise marking GC (yet)
authorSimon Marlow <marlowsd@gmail.com>
Mon, 16 Jun 2008 07:31:11 +0000 (07:31 +0000)
committerSimon Marlow <marlowsd@gmail.com>
Mon, 16 Jun 2008 07:31:11 +0000 (07:31 +0000)
rts/sm/GC.c

index 165c706..e0792d9 100644 (file)
@@ -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;