mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-06-29 22:40:34 +02:00
Add benchmark for finalizers
Doesn't quite work on BDW yet.
This commit is contained in:
parent
f6057184e1
commit
068e0e5cdf
8 changed files with 352 additions and 8 deletions
|
@ -219,14 +219,14 @@ void gc_finalizer_attach(struct gc_mutator *mut, struct gc_finalizer *finalizer,
|
|||
void *prev_data = NULL;
|
||||
gc_finalizer_init_internal(finalizer, object, closure);
|
||||
gc_finalizer_externally_activated(finalizer);
|
||||
GC_REGISTER_FINALIZER_NO_ORDER (gc_ref_heap_object(object), finalize_object,
|
||||
finalizer, &prev, &prev_data);
|
||||
GC_REGISTER_FINALIZER_NO_ORDER(gc_ref_heap_object(object), finalize_object,
|
||||
finalizer, &prev, &prev_data);
|
||||
// FIXME: Allow multiple finalizers per object.
|
||||
GC_ASSERT(prev == NULL);
|
||||
GC_ASSERT(prev_data == NULL);
|
||||
}
|
||||
|
||||
struct gc_finalizer* gc_finalizer_pop(struct gc_mutator *mut) {
|
||||
struct gc_finalizer* gc_pop_finalizable(struct gc_mutator *mut) {
|
||||
GC_invoke_finalizers();
|
||||
return gc_finalizer_state_pop(mut->heap->finalizer_state);
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue