pub unsafe extern "C" fn GC_register_finalizer_unreachable(
arg1: *mut c_void,
arg2: GC_finalization_proc,
arg3: *mut c_void,
arg4: *mut GC_finalization_proc,
arg5: *mut *mut c_void,
)Expand description
This is a special finalizer that is useful when an object’s finalizer
must be run when the object is known to be no longer reachable, not even
from other finalizable objects. It behaves like “normal” finalization,
except that the finalizer is not run while the object is reachable from
other objects specifying unordered finalization. Effectively it allows
an object referenced, possibly indirectly, from an unordered finalizable
object to override the unordered finalization request. This can be used
in combination with GC_register_finalizer_no_order so as to release
resources that must not be released while an object can still be brought
back to life by other finalizers. Only works if GC_java_finalization
is set. Probably only of interest when implementing a language that
requires unordered finalization (e.g. Java, C#).