From e06096231388ce85a768223758946bfda2f7fb7e Mon Sep 17 00:00:00 2001 From: d-netto Date: Sat, 24 Jun 2023 03:17:46 -0300 Subject: [PATCH] only enable concurrent sweeping on 64bit --- src/gc.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/gc.c b/src/gc.c index 6c2f9d0247129..1743ccba63c05 100644 --- a/src/gc.c +++ b/src/gc.c @@ -1440,6 +1440,7 @@ static jl_taggedvalue_t **gc_sweep_page(jl_gc_pool_t *p, jl_gc_pagemeta_t **allo push_page_metadata_back(lazily_freed, pg); } else { + #ifdef _P64 // only enable concurrent sweeping on 64bit if (jl_n_gcthreads == 0) { jl_gc_free_page(pg); push_lf_page_metadata_back(&global_page_pool_freed, pg); @@ -1447,6 +1448,10 @@ static jl_taggedvalue_t **gc_sweep_page(jl_gc_pool_t *p, jl_gc_pagemeta_t **allo else { push_lf_page_metadata_back(&global_page_pool_lazily_freed, pg); } + #else + jl_gc_free_page(pg); + push_lf_page_metadata_back(&global_page_pool_freed, pg); + #endif } gc_time_count_page(freedall, pg_skpd); gc_num.freed += (nfree - old_nfree) * osize; @@ -1566,6 +1571,7 @@ static void gc_sweep_pool(int sweep_full) } } +#ifdef _P64 // only enable concurrent sweeping on 64bit // wake thread up to sweep concurrently if (jl_n_gcthreads > 0) { jl_atomic_fetch_add(&gc_sweeping_assists_needed, 1); @@ -1574,6 +1580,7 @@ static void gc_sweep_pool(int sweep_full) uv_cond_signal(&ptls2->wake_signal); uv_mutex_unlock(&ptls2->sleep_lock); } +#endif gc_time_pool_end(sweep_full); }