From 1d1069575da69269ace9cb093d4435edf46cd266 Mon Sep 17 00:00:00 2001 From: Vlad Brezae Date: Sat, 10 Jun 2017 01:43:04 +0300 Subject: [PATCH] [sgen] Disable parallel mode if not enough cores --- mono/sgen/sgen-gc.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/mono/sgen/sgen-gc.c b/mono/sgen/sgen-gc.c index ed48b8eb665..03dfc5cfddd 100644 --- a/mono/sgen/sgen-gc.c +++ b/mono/sgen/sgen-gc.c @@ -3436,10 +3436,14 @@ sgen_gc_init (void) int num_workers = 1; if (major_collector.is_parallel || sgen_minor_collector.is_parallel) { num_workers = mono_cpu_count (); - if (num_workers < 1) + if (num_workers <= 1) { num_workers = 1; + major_collector.is_parallel = FALSE; + sgen_minor_collector.is_parallel = FALSE; + } } - sgen_workers_init (num_workers, (SgenWorkerCallback) major_collector.worker_init_cb); + if (major_collector.is_concurrent || sgen_minor_collector.is_parallel) + sgen_workers_init (num_workers, (SgenWorkerCallback) major_collector.worker_init_cb); } sgen_memgov_init (max_heap, soft_limit, debug_print_allowance, allowance_ratio, save_target); -- 2.25.1