wingo pushed a commit to branch wip-whippet in repository guile. commit 652bc9ca60a1c931bc4a92da31e5270aadf3384b Author: Andy Wingo <wi...@igalia.com> AuthorDate: Mon Jul 7 16:38:09 2025 +0200
Marking a conservative ref is atomic --- src/nofl-space.h | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/nofl-space.h b/src/nofl-space.h index 14e3b1a16..b10371bee 100644 --- a/src/nofl-space.h +++ b/src/nofl-space.h @@ -1927,10 +1927,11 @@ nofl_space_mark_conservative_ref(struct nofl_space *space, GC_ASSERT(nofl_metadata_byte_is_young_or_has_mark(resolved.byte, space->survivor_mark)); - nofl_space_set_nonempty_mark(space, resolved.metadata, resolved.byte, - gc_ref(resolved.addr)); + if (nofl_space_set_nonempty_mark(space, resolved.metadata, resolved.byte, + gc_ref(resolved.addr))) + return gc_ref(resolved.addr); - return gc_ref(resolved.addr); + return gc_ref_null(); } static inline size_t