wingo pushed a commit to branch wip-whippet
in repository guile.

commit 3db1e48ea69dfdb0878324f9a016837362a15c1f
Author: Andy Wingo <wi...@igalia.com>
AuthorDate: Fri Mar 7 13:25:47 2025 +0100

    Fix race in large object space when counting live object pages
    
    Embarrassing!
---
 src/large-object-space.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/large-object-space.h b/src/large-object-space.h
index b33616290..f7286614e 100644
--- a/src/large-object-space.h
+++ b/src/large-object-space.h
@@ -212,7 +212,7 @@ large_object_space_mark(struct large_object_space *space, 
struct gc_ref ref) {
                                                   memory_order_acquire));
 
   size_t pages = node->key.size >> space->page_size_log2;
-  space->live_pages_at_last_collection += pages;
+  atomic_fetch_add(&space->live_pages_at_last_collection, pages);
 
   return 1;
 }

Reply via email to