Skip to content

Commit f85deae

Browse files
d-nettoRAI CI (GitHub Action Automation)
authored andcommitted
bugfix: load jl_n_threads in jl_gc_pool_live_bytes (JuliaLang#52034)
Otherwise we may just observe `gc_n_threads = 0` (`jl_gc_collect` sets it to 0 in the very end of its body) and this function becomes a no-op.
1 parent eb838f1 commit f85deae

File tree

1 file changed

+4
-2
lines changed

1 file changed

+4
-2
lines changed

src/gc.c

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3268,9 +3268,11 @@ JL_DLLEXPORT int64_t jl_gc_sync_total_bytes(int64_t offset) JL_NOTSAFEPOINT
32683268

32693269
JL_DLLEXPORT int64_t jl_gc_pool_live_bytes(void)
32703270
{
3271+
int n_threads = jl_atomic_load_acquire(&jl_n_threads);
3272+
jl_ptls_t *all_tls_states = jl_atomic_load_relaxed(&jl_all_tls_states);
32713273
int64_t pool_live_bytes = 0;
3272-
for (int i = 0; i < gc_n_threads; i++) {
3273-
jl_ptls_t ptls2 = gc_all_tls_states[i];
3274+
for (int i = 0; i < n_threads; i++) {
3275+
jl_ptls_t ptls2 = all_tls_states[i];
32743276
if (ptls2 != NULL) {
32753277
pool_live_bytes += jl_atomic_load_relaxed(&ptls2->gc_num.pool_live_bytes);
32763278
}

0 commit comments

Comments
 (0)