1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-06-17 17:20:29 +02:00

Add parallel root-tracing phase

This commit is contained in:
Andy Wingo 2024-07-10 15:46:11 +02:00
parent ff1e1b1d44
commit 5084730471
10 changed files with 231 additions and 34 deletions

View file

@ -172,11 +172,11 @@ static inline size_t
gc_atomic_forward_object_size(struct gc_atomic_forward *fwd) {
GC_ASSERT(fwd->state == GC_FORWARDING_STATE_ACQUIRED);
switch (tag_live_alloc_kind(fwd->data)) {
#define SCAN_OBJECT(name, Name, NAME) \
#define OBJECT_SIZE(name, Name, NAME) \
case ALLOC_KIND_##NAME: \
return name##_size(gc_ref_heap_object(ref)); \
FOR_EACH_HEAP_OBJECT_KIND(SCAN_OBJECT)
#undef SCAN_OBJECT
return name##_size(gc_ref_heap_object(fwd->ref));
FOR_EACH_HEAP_OBJECT_KIND(OBJECT_SIZE)
#undef OBJECT_SIZE
default:
GC_CRASH();
}