Skip to content

Commit 2f9f0ff

Browse files
committed
only enable concurrent sweeping on 64bit
1 parent e7e8676 commit 2f9f0ff

File tree

1 file changed

+7
-0
lines changed

1 file changed

+7
-0
lines changed

src/gc.c

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1440,13 +1440,18 @@ static jl_taggedvalue_t **gc_sweep_page(jl_gc_pool_t *p, jl_gc_pagemeta_t **allo
14401440
push_page_metadata_back(lazily_freed, pg);
14411441
}
14421442
else {
1443+
#ifdef _P64 // only enable concurrent sweeping on 64bit
14431444
if (jl_n_gcthreads == 0) {
14441445
jl_gc_free_page(pg);
14451446
push_lf_page_metadata_back(&global_page_pool_freed, pg);
14461447
}
14471448
else {
14481449
push_lf_page_metadata_back(&global_page_pool_lazily_freed, pg);
14491450
}
1451+
#else
1452+
jl_gc_free_page(pg);
1453+
push_lf_page_metadata_back(&global_page_pool_freed, pg);
1454+
#endif
14501455
}
14511456
gc_time_count_page(freedall, pg_skpd);
14521457
gc_num.freed += (nfree - old_nfree) * osize;
@@ -1566,6 +1571,7 @@ static void gc_sweep_pool(int sweep_full)
15661571
}
15671572
}
15681573

1574+
#ifdef _P64 // only enable concurrent sweeping on 64bit
15691575
// wake thread up to sweep concurrently
15701576
if (jl_n_gcthreads > 0) {
15711577
jl_atomic_fetch_add(&gc_sweeping_assists_needed, 1);
@@ -1574,6 +1580,7 @@ static void gc_sweep_pool(int sweep_full)
15741580
uv_cond_signal(&ptls2->wake_signal);
15751581
uv_mutex_unlock(&ptls2->sleep_lock);
15761582
}
1583+
#endif
15771584

15781585
gc_time_pool_end(sweep_full);
15791586
}

0 commit comments

Comments
 (0)