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

Rework gc_call_without_gc to allow reentrancy

Rename to gc_deactivate_for_call / gc_reactivate_for_call
This commit is contained in:
Andy Wingo 2025-05-15 11:26:27 +02:00
parent d58aa71281
commit 675d8d649a
8 changed files with 93 additions and 21 deletions

View file

@ -53,8 +53,12 @@ GC_API_ void gc_heap_set_extern_space(struct gc_heap *heap,
GC_API_ struct gc_mutator* gc_init_for_thread(struct gc_stack_addr base,
struct gc_heap *heap);
GC_API_ void gc_finish_for_thread(struct gc_mutator *mut);
GC_API_ void* gc_call_without_gc(struct gc_mutator *mut, void* (*f)(void*),
void *data) GC_NEVER_INLINE;
GC_API_ void* gc_deactivate_for_call(struct gc_mutator *mut,
void* (*f)(struct gc_mutator*, void*),
void *data) GC_NEVER_INLINE;
GC_API_ void* gc_reactivate_for_call(struct gc_mutator *mut,
void* (*f)(struct gc_mutator*, void*),
void *data) GC_NEVER_INLINE;
GC_API_ void gc_collect(struct gc_mutator *mut,
enum gc_collection_kind requested_kind);