diff --git a/src/safepoint.c b/src/safepoint.c index 961586372611ac..cb6d9247c0d0f5 100644 --- a/src/safepoint.c +++ b/src/safepoint.c @@ -255,16 +255,15 @@ void jl_safepoint_wait_pmark(void) void jl_safepoint_wait_sweeping(void) { - jl_cpu_pause(); + while (jl_atomic_load_relaxed(&jl_gc_running) || + jl_atomic_load_acquire(&jl_gc_running)) + jl_cpu_pause(); } void jl_safepoint_wait_gc(void) { - while (jl_atomic_load_relaxed(&jl_gc_running) || - jl_atomic_load_acquire(&jl_gc_running)) { - jl_safepoint_wait_pmark(); - jl_safepoint_wait_sweeping(); - } + jl_safepoint_wait_pmark(); + jl_safepoint_wait_sweeping(); } void jl_safepoint_enable_sigint(void)