Skip to main content

GC_call_with_gc_active

Function GC_call_with_gc_active 

Source
pub unsafe extern "C" fn GC_call_with_gc_active(
    arg1: GC_fn_type,
    arg2: *mut c_void,
) -> *mut c_void
Expand description

Call a function switching to the “active” state of the collector for the current thread (i.e. the user function is temporarily back allowed to call any GC function and/or manipulate pointers to the garbage-collected heap). GC_call_with_gc_active() has the functionality opposite to GC_do_blocking() one. It is assumed that the collector is already initialized and the current thread is registered. fn may toggle the collector thread’s state temporarily to “inactive” one by using GC_do_blocking(). GC_call_with_gc_active() often can be used to provide a sufficiently accurate stack bottom. Acquires the allocator lock in the reader mode (but fn is called not holding it).