Registers an R function to be called upon garbage collection of
object or (optionally) at the end of an R session.
Usage
reg.finalizer(e, f, onexit = FALSE)
Arguments
e
Object to finalize. Must be an environment or an external pointer.
f
Function to call on finalization. Must accept a single argument,
which will be the object to finalize.
onexit
logical: should the finalizer be run if the object is
still uncollected at the end of the R session?
Value
NULL.
Details
The main purpose of this function is to allow objects that refer to
external items (a temporary file, say) to perform cleanup actions when
they are no longer referenced from within R. This only makes sense
for objects that are never copied on assignment, hence the restriction
to environments and external pointers. Inter alia, it provides a way to program code to be run at
the end of an R session without manipulating .Last.
For use in a package, it is often a good idea to set a finalizer on an
object in the namespace: then it will be called at the end of the
session, or soon after the namespace is unloaded if that is done
during the session.
See Also
gc and Memory for garbage collection and
memory management.