diff options
Diffstat (limited to 'libguile/whippet/src/semi.c')
-rw-r--r-- | libguile/whippet/src/semi.c | 21 |
1 files changed, 18 insertions, 3 deletions
diff --git a/libguile/whippet/src/semi.c b/libguile/whippet/src/semi.c index 9754b3fa2..a1526cec4 100644 --- a/libguile/whippet/src/semi.c +++ b/libguile/whippet/src/semi.c @@ -487,6 +487,9 @@ void gc_write_barrier_slow(struct gc_mutator *mut, struct gc_ref obj, int* gc_safepoint_flag_loc(struct gc_mutator *mut) { GC_CRASH(); } void gc_safepoint_slow(struct gc_mutator *mut) { GC_CRASH(); } +int gc_safepoint_signal_number(void) { GC_CRASH(); } +void gc_safepoint_signal_inhibit(struct gc_mutator *mut) { GC_CRASH(); } +void gc_safepoint_signal_reallow(struct gc_mutator *mut) { GC_CRASH(); } static int collect_for_large_alloc(struct gc_mutator *mut, size_t npages) { size_t bytes = npages * mutator_semi_space(mut)->page_size; @@ -761,8 +764,20 @@ struct gc_mutator* gc_init_for_thread(struct gc_stack_addr base, void gc_finish_for_thread(struct gc_mutator *space) { } -void* gc_call_without_gc(struct gc_mutator *mut, void* (*f)(void*), - void *data) { +void gc_deactivate(struct gc_mutator *mut) {} + +void gc_reactivate(struct gc_mutator *mut) {} + +void* gc_deactivate_for_call(struct gc_mutator *mut, + void* (*f)(struct gc_mutator *, void*), + void *data) { + // Can't be threads, then there won't be collection. + return f(mut, data); +} + +void* gc_reactivate_for_call(struct gc_mutator *mut, + void* (*f)(struct gc_mutator *mut, void*), + void *data) { // Can't be threads, then there won't be collection. - return f(data); + return f(mut, data); } |