* alloc.c (GC_try_to_collect_inner, GC_collect_a_little): Wrap
GC_collect_a_little_inner() call into ENTER/EXIT_GC().
* gc_dlopen.c [!USE_PROC_FOR_LIBRARIES] (disable_gc_for_dlopen):
Likewise.
* malloc.c (GC_alloc_large): Likewise.
/* TODO: Notify GC_EVENT_ABANDON */
return(FALSE);
}
+ ENTER_GC();
GC_collect_a_little_inner(1);
+ EXIT_GC();
}
}
GC_notify_full_gc();
DCL_LOCK_STATE;
LOCK();
+ ENTER_GC();
GC_collect_a_little_inner(1);
+ EXIT_GC();
result = (int)GC_collection_in_progress();
UNLOCK();
if (!result && GC_debugging_started) GC_print_all_smashed();
DCL_LOCK_STATE;
LOCK();
while (GC_incremental && GC_collection_in_progress()) {
+ ENTER_GC();
GC_collect_a_little_inner(1000);
+ EXIT_GC();
}
++GC_dont_gc;
UNLOCK();
LOCK();
}
/* Do our share of marking work */
- if (GC_incremental && !GC_dont_gc)
+ if (GC_incremental && !GC_dont_gc) {
+ ENTER_GC();
GC_collect_a_little_inner((int)n_blocks);
+ EXIT_GC();
+ }
h = GC_allochblk(lb, k, flags);
# ifdef USE_MUNMAP
if (0 == h) {